c语言信号量使用心得体会

1、选用什么标准的信号量在Linux中信号量有两种标准,一种是System V,另一种是Posix标准。其中System V是早期的标准;Posix(Portable Operating System Interface )是一个由IEEE开发的一系列标准,它还是由ISO(国际标准化组织)和IEC(国际电工委员会)采纳的国际标准。而System v是Unix操作系统众多版本的一个分支。...
摘要由CSDN通过智能技术生成

1、选用什么标准的信号量

在Linux中信号量有两种标准,一种是System V,另一种是Posix标准。其中System V是早期的标准;

Posix(Portable Operating System Interface )是一个由IEEE开发的一系列标准,它还是由ISO(国际标准化组织)和IEC(国际电工委员会)采纳的国际标准。而System v是Unix操作系统众多版本的一个分支。

实际使用中Posix标准封装地更好,使用更简单。一般线程间的同步使用Posix无名信号量比较方便。但是sem_wait成功后获取信号灯后,进程如果意外终止。

2、使用过程中常见问题汇总

(1)System V标准下获取信号量值的用法为val = semctl(semid, 0, GETVAL);

(2)semaphore信号量和互斥量的区别:semaphore信号量会将竞争的线程挂起,保证前一个线程从阻塞态释放后后一个线程能够被处理。而mutex则不保证这一点(可能一个线程恰好每次轮到它执行,而对资源独占或者分配不均的情况)。

(3)不同进程之间用有名信号量同步的时候,一般用共享内存将标识字符串存储起来。

3、信号量的缺点,什么时候使用信号量?

P操作原语:

(1) sem 减1

(2)若sem 大于等于0,线程继续执行.

(3

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值