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