分页: 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的组合就能工作得很好了。