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

C、C++和Java语言
回复
头像
diabloneo
帖子: 80
注册时间: 2006-06-06 22:56
送出感谢: 0
接收感谢: 0

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

#1

帖子 diabloneo » 2007-04-02 21:13

我最近在研究UNIX的信号量机制时碰到了这个问题:是使用<sys/sem.h>的信号量,还是使用<semaphore.h>?
'Advanced Programming in the UNIX' 第二版中,只介绍了使用<sys/sem.h>,但是却说,这个信号量机制过于复杂,而且存在一个严重的缺陷——信号量的创建和初始化不是原始操作。
我请问:现在的开发中是不是使用<semaphore.h>所提供的信号量机制,和更简单的sem_t 信号量原型?
上次由 diabloneo 在 2007-04-05 19:32,总共编辑 1 次。
头像
laborer
帖子: 1016
注册时间: 2005-10-25 11:15
送出感谢: 0
接收感谢: 1 次
联系:

#2

帖子 laborer » 2007-04-02 23:07

代码: 全选

$ 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,它们要更方便一些。
头像
diabloneo
帖子: 80
注册时间: 2006-06-06 22:56
送出感谢: 0
接收感谢: 0

#3

帖子 diabloneo » 2007-04-03 0:14

谢谢。不过我的系统中只有 sem_overview 的文档, 怎么获取其他文档呢?还有 sem_wait等。
头像
laborer
帖子: 1016
注册时间: 2005-10-25 11:15
送出感谢: 0
接收感谢: 1 次
联系:

#4

帖子 laborer » 2007-04-03 0:22

代码: 全选

sudo apt-get install manpages-dev
黑衣隐于夜
帖子: 11
注册时间: 2007-03-19 10:49
送出感谢: 0
接收感谢: 0

#5

帖子 黑衣隐于夜 » 2007-04-24 17:23

关于posix中semaphore的使用
推荐看
http://mia.ece.uic.edu/~papers/WWW/book ... CU_010.HTM

我对于使用semaphore 还是使用 mutex和conditional variable的组合,这两种方式的应用场合总有些困惑。觉得它们没有专属的应用场合,通常都是可替换。
头像
diabloneo
帖子: 80
注册时间: 2006-06-06 22:56
送出感谢: 0
接收感谢: 0

#6

帖子 diabloneo » 2007-04-26 17:52

现在感觉用多线程编程的话,用mutex和cond的组合就能工作得很好了。
回复

回到 “C/C++/Java”