Chinaunix首页 | 论坛 | 博客
  • 博客访问: 71740
  • 博文数量: 24
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 245
  • 用 户 组: 普通用户
  • 注册时间: 2014-12-10 08:06
文章分类
文章存档

2015年(24)

我的朋友

分类: LINUX

2015-05-31 23:20:38

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) |
给主人留下些什么吧!~~