进程间加锁(信号量)
来源:互联网 发布:诺基亚x2软件下载 编辑:程序博客网 时间:2024/05/20 05:06
在网上搜了很多的资料,对于进程间的同步却很少,我这里实现了简单的互斥
对于信号量的创建就不介绍了,可以google一下。
int sem_lock(int key)/* 加锁 */
{
struct sembuf op;
op.sem_num = 0;
op.sem_flg = SEM_UNDO;
op.sem_op = -1;//increment if abs(sem_op) < sem_val
if (semop(key, &op, 1) == -1)
perror("semop");
}
int sem_unlock(int key)/* 解锁 */
{
struct sembuf op;
op.sem_num = 0;
op.sem_flg = SEM_UNDO;
op.sem_op = 1;
if (semop(key, &op, 1) == -1)
perror("semop");
}
但是这样对于初始化状态不好控制,必须用两个锁,所以我该用了这种加锁,初始化状态为1就可以了。
int sem_lock(int key)
{
struct sembuf op;
op.sem_num = 0;
op.sem_flg = 0;
op.sem_op = -1;//-1 if abs(sem_op) >= sem_val
if (semop(key, &op, 1) == -1)
perror("semop");
}
int sem_unlock(int key)
{
struct sembuf op;
op.sem_num = 0;
op.sem_flg = 0;
op.sem_op = 1;
if (semop(key, &op, 1) == -1)
perror("semop");
}
- 进程间加锁(信号量)
- linux进程间信号量
- 进程间通信 信号量
- 进程间通信--信号量
- 进程间通信-信号量
- 进程间同步 信号量
- 进程间通信-信号量
- 进程间通信--信号量
- 【进程间通信】信号量
- 进程间通信----信号量
- 进程间通信:信号量
- 进程间通信-信号量
- 进程间通信-信号量
- 进程间通信--信号量
- 进程间通信--信号量
- 进程间通信---->信号量
- 进程间通信-信号量
- 进程间通信-信号量
- CostDto简单的排序
- 找工作的烦恼
- 迷失
- 好兴奋啊 上CSDN首页了
- SharePoint随笔
- 进程间加锁(信号量)
- Java连接数据库
- java内存溢出的查看
- DLL文件戡乱记
- 【转】数学专业参考书整理推荐V3.0版
- 学习NodeJS第三天:打造Nodejs的调试环境(上)
- 堆与栈的区别
- JSP访问数据库分页显示
- 结了婚为什么就不一样了?