首页 > 系统服务 > 详细

进程共享内存时的同步问题

时间:2020-09-12 18:55:22      阅读:76      评论:0      收藏:0      [点我收藏+]

1 文件锁

  文件锁,也被成为记录锁,可以控制不同进程对于同一个文件的同步访问,linux底下

实现的机制有flock(),该调用是对整个文件进行加锁。还有lockf以及fcntl,其中lockf是对

fcntl的封装,可以实现对文件当中的某个部分进行加锁,flock和lockf都是建议锁而非强制

锁,二者的加锁方式和范围都有区别。

  需要注意使用文件锁时可能会出现的锁失效的情况。

 

2 信号量

  int semget (key_t key, int nsem, int oflag) ,该调用为创建信号量的具体系统调用,

类似于共享内存的调用,在信号量的创建过程当中需要添加参数key来标识创建的信号量,

这样信号量对其他进程可见,从而实现访问的同步。

 

3 互斥锁

  互斥锁一般用于线程之间同步,如果使用mutex来进行进程之间的同步话,需要使用

pthread_rwlockattr_setpshared linuxAPI设置PTHREAD_PROCESS_SHARED,这样mutex

是对多个进程可见,mutex需要设置在需要保护的共享内存区当中。

进程共享内存时的同步问题

原文:https://www.cnblogs.com/wangkaia/p/13657975.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!