分类: C/C++
2010-10-02 13:45:04
在pthreads标准库里面, 库本身并不提供对信号量的支持,因为POSIX标准并没有对信号量做出定义,但是如果你一定要使用信号量来完成程序的话,那么所有的内容都会包含在semphore.h文件里 请注意:不要混合着使用系统V自带的信号量,系统V的信号量位于sys/sem.h文件中
运行程序 [support@smtp2 ailf]$ gcc semaphore.c -o semaphore -lpthread 关于Semphore的API有下面几点说明:
下面让我们用表格的形式总结一下关于线程操作的一些方法 本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/asiainfolf/archive/2010/10/02/5918625.aspx 跟刘峰六学C语言(3) 信号量 收藏
[support@smtp2 ailf]$ ./semaphore
Total milk: 1
[support@smtp2 ailf]$ ./semaphore
Total milk: 1
[support@smtp2 ailf]$ ./semaphore
Total milk: 1
[support@smtp2 ailf]$ ./semaphore
Total milk: 1
[support@smtp2 ailf]$ ./semaphore
Total milk: 1
[support@smtp2 ailf]$ ./semaphore
Total milk: 1
[support@smtp2 ailf]$
基本操作
绝缘量
互斥量
信号量
生成
pthread_create
pthread_barrier_init
pthread_mutex_init
sem_init
析构
pthread_exit
pthread_barrier_destroy
pthread_mutex_destroy
sem_destroy
挂起等待
pthread_join
pthread_barrier_wait
---
---
获得资源
---
---
pthread_mutex_lock
sem_wait
释放
---
---
pthread_mutex_unlock
sem_post