生产消费者模型
操作函数需要的头文件 #include <semaphore.h>
p操作:申请资源 (消费者)sem_wai;信号量的值减1;
v操作:释放资源(生产者)tsem_post;信号量的值加1。
int sem_init(sem_t *sem,int pshared,unsigned int val);
初始化信号量,
sem是信号量的地址
pshared是共享方式
0:共享在线程通信
非0:共享在线程间通信。
val:信号量的初值
int sem_wait(sem_t *sem);
申请资源,相当于p操作。
int sem_post(sem_t *sem);
释放资源,相当于v操作。
总结
这三个函数调用成功都返回0,失败返回-1,并设置错误号。