信号量实现进程互斥
1、sem_init
2、sem_post
3、sem_wait
4、sem_destroy
调用函数所需头文件:semaphore.h
函数原型 :int sem_init(sem_t *sem, int pshared, unsigned int value);
参数解释 :
sem :指向信号量对象
pshared : 指明信号量的类型。当为0时,用于进程;当为0时,用于线程。
value : 指定信号量值的大小
返回值:成功返回0,失败时返回-1,并设置errno。
作用:创建信号量,并为信号量值赋初值。
✔
调用函数所需头文件:semaphore.h
函数原型:int sem_post(sem_t *sem);
参数解释 :
sem :指向信号量对象
返回值:成功返回0,失败时返回-1,并设置errno。
作用: 以原子操作的方式为将信号量增加1
✔
调用函数所需头文件:semaphore.h
函数原型:sem_wait(sem_t *sem);
参数解释 :
sem :指向信号量对象
返回值:成功返回0,失败时返回-1,并设置errno
作用: 以阻塞的方式等待信号量,当信号量的值大于零时,执行该函数信号量减一,当信号量
为零时,调用该函数的线程将会阻塞。
✔
调用函数所需头文件:semaphore.h
✔