都不是.pthread_*(例如phtread_mutex_t)的实际版本都允许将变量放在通过创建的共享段中shm_open.您只需要在init调用中添加一些额外的参数.
sem_t如果你不需要,不要使用信号量(),它们太低,并且被IO等中断.
不要滥用文件锁定进行进程间控制.它不是为此而做的.特别是,您无法刷新文件元数据(如锁定),因此您永远不会知道第二个进程何时可以看到锁定/解锁.
正如DarkDust所说,您正在经历着丰富的历史中的众多选择。对于我的决策树来说,值得这样做的是:
一次只能访问一个进程/线程时,请使用互斥锁。
当两个或更多(但仍然有限)的进程/线程可以使用资源时,请使用信号量。
除非确实需要SYSV信号量,否则请使用POSIX信号量-例如UNDO,上次操作的PID等。
对文件使用文件锁定,或者如果以上内容在某种程度上不符合您的要求。
| 归档时间: |
|
| 查看次数: |
9363 次 |
| 最近记录: |