分页: 1 / 1

[问题]<semaphore.h> or <sys/sem.h>? <已解决>

发表于 : 2007-04-02 21:13
diabloneo
我最近在研究UNIX的信号量机制时碰到了这个问题:是使用<sys/sem.h>的信号量,还是使用<semaphore.h>?
'Advanced Programming in the UNIX' 第二版中,只介绍了使用<sys/sem.h>,但是却说,这个信号量机制过于复杂,而且存在一个严重的缺陷——信号量的创建和初始化不是原始操作。
我请问:现在的开发中是不是使用<semaphore.h>所提供的信号量机制,和更简单的sem_t 信号量原型?

发表于 : 2007-04-02 23:07
laborer

代码: 全选

$ man sem_overview
NOTES
       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.
就我所了解的,现在的开发中进程间需要用到信号量来同步/互斥的并不多见,线程间的则主要用pthread的mutex和conditional variable,它们要更方便一些。

发表于 : 2007-04-03 0:14
diabloneo
谢谢。不过我的系统中只有 sem_overview 的文档, 怎么获取其他文档呢?还有 sem_wait等。

发表于 : 2007-04-03 0:22
laborer

代码: 全选

sudo apt-get install manpages-dev

发表于 : 2007-04-24 17:23
黑衣隐于夜
关于posix中semaphore的使用
推荐看
http://mia.ece.uic.edu/~papers/WWW/book ... CU_010.HTM

我对于使用semaphore 还是使用 mutex和conditional variable的组合,这两种方式的应用场合总有些困惑。觉得它们没有专属的应用场合,通常都是可替换。

发表于 : 2007-04-26 17:52
diabloneo
现在感觉用多线程编程的话,用mutex和cond的组合就能工作得很好了。