linux进程线程同步之 - POSIX无名信号量

本文介绍了Linux下POSIX无名信号量的使用,包括初始化、注销、申请(P操作)、无阻塞申请、带超时申请、释放(V操作)及查询信号量的操作。这些函数用于线程间和相关进程间的同步,例如sem_init、sem_destroy、sem_wait、sem_trywait、sem_timedwait和sem_post等。
摘要由CSDN通过智能技术生成

POSIX - 无名信号量(匿名信号量)

使用范围:线程间同步,相关进程间同步

此文转自:http://blog.csdn.net/jiebaoabcabc/article/details/37885659

一、函数介绍

1.初始化无名信号量

#include<semaphore.h>

int sem_init(sem_t *sem, int pshared, unsigned int value);

函数功能sem_init()初始化一个定位在 sem的匿名信号量。

返回值sem_init()成功时返回 0;错误时,返回 -1,并把 errno设置为合适的值。

错误EINVAL

value 超过 SEM_VALUE_MAX

ENOSYS

pshared 非零,但系统还没有支持进程共享的信号量

输入参数

         1.pshared

         pshared==0用于同一多线程的同步;

         若pshared>0 用于多个相关进程间的同步(即由fork产生的)

         如果 pshared是非零值,那么信号量将在进程之间共享,并且应该定位共享内存区域(见 shm_open(3)、mmap(2) 和 shmget(2))。(因为通过 fork(2) 创建的孩子继承其父亲的内存映射,因此它也可以见到这个信号量。所有可以访问共享内存区域的进程都可以用 sem_post(3)、sem_wait(3) 等等操作信号量

         2.value

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值