信号量sem_init
来源:互联网 发布:yum怎么读 编辑:程序博客网 时间:2024/05/10 20:55
信号量的数据类型为结构sem_t,它本质上是一个长整型的数。函数sem_init()用来初始化一个信号量。它的原型为:
extern int sem_init __P((sem_t *__sem, int __pshared, unsigned int __value));
sem为指向信号量结构的一个指针;pshared不为0时此信号量在进程间共享,否则只能为当前进程的所有线程共享;value给出了信号量的初始值。
函数sem_post( sem_t *sem)用来增加信号量的值。当有线程阻塞在这个信号量上时,调用这个函数会使其中的一个线程不在阻塞,选择机制同样是由线程的调度策略决定的。
函数sem_wait( sem_t *sem)被用来阻塞当前线程直到信号量sem的值大于0,解除阻塞后将sem的值减一,表明公共资源经使用后减少。函数sem_trywait (sem_t *sem )是函数sem_wait()的非阻塞版本,它直接将信号量sem的值减一。
函数sem_destroy(sem_t*sem)用来释放信号量sem。
信号量用sem_init函数创建的,下面是它的说明:
#include<semaphore.h>
这两个函数控制着信号量的值,它们的定义如下所示:
#include <semaphore.h>
#include<stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <string.h>
#include <pthread.h>
#include <semaphore.h>
sem_t bin_sem;
void *thread_function1(void *arg)
{
}
void *thread_function2(void *arg)
{
}
int main()
{
}
sem_init
thread_function1
thread_function1--------------sem_wait
sleep
thread_function2--------------sem_post
sem_wait
sem_post
- 信号量sem_init
- 信号量sem_init,sem_wait,sem_post
- sem_init sem_post sem_destroy信号量介绍
- 内存信号量sem_init函数解析
- sem_init sem_post sem_destroy信号量介绍
- 多线程信号量 sem_init 系列函数
- sem_init sem_post sem_destroy信号量介绍
- Linux 信号量 sem_init(3) (翻译 man 3)
- undefided reference to 'sem_init' 等信号量问题
- 信号量sem_t\sem_init\sem_post\sem_wait\sem_destroy
- sem_init,sem_post,sem_wait 信号量的用法解释
- sem_init,sem_post,sem_wait 信号量的用法解释
- 多线程使用信号量sem_init,sem_wait,sem_post
- sem_init,sem_post,sem_wait 信号量的用法解释
- 信号量的用法和解释,sem_init,sem_wait
- 多线程使用信号量sem_init,sem_wait,sem_post
- sem_init
- sem_init
- 2014年4月操作系统份额:Windows XP仍然在26%以上,Linux微涨
- 简介Gson使用(二)
- tcpdump 规则
- [2013山东省第四届ACM大学生程序设计竞赛]——Contest Print Server
- java xml---建立一个XML文档
- 信号量sem_init
- java native interface JNI 简介、基本原理
- 数据误删后如何使用Flashback恢复数据
- 基于MQTT协议的 org.eclipse.paho.client.mqttv3 源码学习(一)
- Android ListView中Adapter、填充器的使用
- 2014年4月操作系统份额:Windows XP仍然在26%以上,Linux微涨
- Seo,怎么进步网站转化率?
- oracle安装需要修改的文件bash_profile
- android:scaleType属性