码迷,mamicode.com
首页 > 其他好文 > 详细

[development][semaphore] 信号量/信号灯/信号标/旗语

时间:2017-11-09 14:32:12      阅读:206      评论:0      收藏:0      [点我收藏+]

标签:另一个   min   没有   linux c   线程   ace   api   原则   sign   

 

前言:

接续前节 

[development][C] 条件变量(condition variables)的应用场景是什么

之前讨论了条件变量的问题, 已经知道在逻辑上, 条件变量(管程)(moniter) 与信号量 逻辑等价. 可以相互实现.

又知: 二元信号量可以用来实现互斥量.

那么是不是说进程间交互, 仅使用信号量便已经足够了能?

 

另一个问题: 在API层面上,  我们知道互斥量的使用原则是: 谁加锁谁释放. 但是二元信号量的用法却可以是线程A做V操作, 线程B做P操作.

这是否只是存在于API层面上的区别呢?

 

不知道以上这些内容, 是否存在一个专门的知识分支?

一本书, 可以深入这个问题, 还没有来的及读:   <<The little book of Semaphores>>  http://greenteapress.com/wp/semaphores/

其他参考内容:

https://zh.wikipedia.org/wiki/%E4%BF%A1%E8%99%9F%E6%A8%99

https://en.wikipedia.org/wiki/Semaphore_(programming)

https://wizardforcel.gitbooks.io/think-os/content/ch11.html

 

API:

LInux C下有两套信号量的API

Posix:

http://man7.org/linux/man-pages/man7/sem_overview.7.html

System V:

http://man7.org/linux/man-pages/man2/semget.2.html

http://man7.org/linux/man-pages/man2/semop.2.html

http://man7.org/linux/man-pages/man2/semctl.2.html

 

关于二者的选用问题, Posix里边如是说:

       System V semaphores (semget(2), semop(2), etc.) are an older
       semaphore API.  POSIX semaphores provide a simpler, and better
       designed interface than System V semaphores; on the other hand POSIX
       semaphores are less widely available (especially on older systems)
       than System V semaphores.

 

就是说, 请选用POSIX API !

 

[development][semaphore] 信号量/信号灯/信号标/旗语

标签:另一个   min   没有   linux c   线程   ace   api   原则   sign   

原文地址:http://www.cnblogs.com/hugetong/p/7808627.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!