Linux学习——信号量
1.头文件-semaphore.h
2.信号量类型
sem_t sem;
加强版的互斥锁,是并行的
3.主要函数
初始化信号量
sem_init(sem_t *sem,int pshared,unsigned int value);
第一个参数 信号量类型
第二个参数
0-线程同步
1-进程同步
value-最多有几个线程操作共享数据
销毁信号量
sem_destroy(sem_t *sem);
加锁
sem_wait(sem_t *sem);
调用一次相当于对sem做了一次 --(减减) 操作
如果sem值为0,线程会阻塞
尝试加锁
sem_trywait(sem_t *sem);
sem == 0;加锁失败,不阻塞,直接返回
限时尝试加锁
sem_timewait(sem_t *sem,xxxx);
xxx是限时多少秒
解锁++
sem_post(sem_t *sem);
对sem做了++ 操作
4.练习
使用信号量实现生产者,消费者模型。