C语言sem Take函数,信号量函数sem.c
信号量函数sem.c
来源:华强电子网
作者:华仔
浏览:148
时间:2016-08-10 14:18
标签:
摘要:
;;; MantisOS中下信号量函数sem.c,主要调用了Linux底层的AD736JN信号量函数接口semaphore.c来控制多线程环境中共享资源的计数器。;;; 信号量是在多线程环境中共享资源的计数器。对信号量的基本操作无非有3个:对信号量的增加;然后阻塞线程等待,直到信号量不为空才返回;对信号量的减少。在编程中,信号量最常用的方式就是一个线程A使用sem_wait阻塞,因为此时信号量计数
;;; MantisOS中下信号量函数sem.c,主要调用了Linux底层的AD736JN信号量函数接口semaphore.c来控制多线程环境中共享资源的计数器。;;; 信号量是在多线程环境中共享资源的计数器。对信号量的基本操作无非有3个:对信号量的增加;然后阻塞线程等待,直到信号量不为空才返回;对信号量的减少。在编程中,信号量最常用的方式就是一个线程A使用sem_wait阻塞,因为此时信号量计数为O,直到另外一个线程B发出信号post后,信号量计数加1,此时,线程A得到了信号,信号量的计数为1不为空,所就从sem_wait返回,然后信号量的计数又减1变为零。在使用信号量之前,必须对信号量进行初始化。第三个参数通常设置零,初始化信号的计数为0,这样第一次伎用sem_wait时会因为信号计数为O而等待,直到在其他地方信号量post才返回(除非用户明白自己在干什么,否则不要将第三个参数设置为大于0的数)。第二个参数是用在进程之间的数据共享标志,如果仅仅使用在当前进程中,设置为0。如果要在多个进程之间使用该信号,设置为非零。但是在Linux线程中,暂时还不支持进程之间的信号共享,所以第二个参数必须设置为0。当信号的计数为零时,sem_wait将休眠挂起当前调用线程,直到信号量计数不为零。在sem_wait返回后信号量计数将自动减1。解除信号量等待限制。让信号量计数加1,该函数会立即返回不等待。现在sem_post被POSIX所规范,当它改变信号量计数器值时是线程安全的。
;;; 当semjnit失败时,常见错误有:第三个参数value值超过了系统能够承受的最大值SEM_VALUE_MAX;将第二参数设置为非零,如果是Linux系统,则将第二个参数设置为零。
分享到:
C语言sem Take函数,信号量函数sem.c相关推荐
- C语言中连续调用rand函数,返回值不变
C语言中连续调用rand函数,返回值不变 最近用C语言随机函数编程发现了一个奇怪的现象: 简易版代码: #include<stdio.h> #include<stdlib.h> ...
- R语言使用trimws函数:trimws函数去除(删除、remove)字符串头尾的空格
R语言使用trimws函数:trimws函数去除(删除.remove)字符串头尾的空格 目录 R语言使用trimws函数:trimws函数去除(删除.remove)字符串头尾的空格
- R语言使用integrate函数进行函数积分计算实战
R语言使用integrate函数进行函数积分计算实战 目录 R语言使用integrate函数进行函数积分计算实战 #自定义函数 #积分操作
- R语言使用ggplot2包geom_jitter()函数绘制分组(strip plot,一维散点图)带状图(添加箱图、带缺口的小提琴图、小提琴图)实战
R语言使用ggplot2包geom_jitter()函数绘制分组(strip plot,一维散点图)带状图(添加箱图.带缺口的小提琴图.小提琴图)实战 目录 R语言使用ggplot2包geom_jit ...
- R语言可视化、编写自定义函数可视化水平排序条形图(horizontal bar plot)、自定义图像布局模仿经济学人杂志可视化效果、右侧添加标签数值图像方框、自定义背景色、水平条形图中间线条等
R语言可视化.编写自定义函数可视化水平排序条形图(horizontal bar plot).自定义图像布局模仿经济学人杂志可视化效果.右侧添加标签数值图像方框.自定义背景色.水平条形图中间线条.网格线 ...
- R语言编写自定义描述统计计算函数、使用doBy包的summaryBy函数计算不同分组(group)的描述性统计值(Descriptive statistics by group、样本个数、均值、标准)
R语言编写自定义描述统计计算函数.使用doBy包的summaryBy函数计算不同分组(group)的描述性统计值(Descriptive statistics by group using summa ...
- R语言使用ggplot2包geom_jitter()函数绘制分组(strip plot,一维散点图)带状图(颜色配置:连续色彩、离散色彩、色彩梯度)实战
R语言使用ggplot2包geom_jitter()函数绘制分组(strip plot,一维散点图)带状图(颜色配置:连续色彩.离散色彩.色彩梯度)实战 目录 R语言使用ggplot2包geom_ji ...
- R语言使用ggplot2包geom_jitter()函数绘制分组(strip plot,一维散点图)带状图(自定义色彩、形状)实战
R语言使用ggplot2包geom_jitter()函数绘制分组(strip plot,一维散点图)带状图(自定义色彩.形状)实战 目录 R语言使用ggplot2包geom_jitter()函数绘制分 ...
- R语言使用ggplot2包geom_jitter()函数绘制分组(strip plot,一维散点图)带状图(双分类变量分组:色彩配置、形状配置)实战
R语言使用ggplot2包geom_jitter()函数绘制分组(strip plot,一维散点图)带状图(双分类变量分组:色彩配置.形状配置)实战 目录 R语言使用ggplot2包geom_jitt ...
最新文章
- 【C++】多线程与异步编程【四】
- 百度要回归 A 股?
- 开源一个上架App Store的相机App
- access窗体中再制作查询窗体_Access
- jquery图片延迟加载 lazy-src
- 等差素数列(素数筛暴力)
- 时间操作(Java版)—获取给定日期N天后的日期
- python中stacked_python – Django管理员StackedInline定制
- linux ftp 警告暗号话,ssh,FTP到远程服务器时,显示自定义的警告信息
- 1、java 的安装及资料下载
- OpenCV快速入门六:图解Numpy
- 开发、运维、UI设计、产品经理等岗位的薪酬体系大曝光!
- 《Gpu Gems》《Gpu Pro》《Gpu Zen》系列读书笔记
- 整型常量是整数类型的数据
- Word 【域】学习笔记 - 图/表题注
- JAVA程序计算圆的周长面积
- 均匀分布(Uniform distribution)
- siliconc8051f Silicon C8051F编程器使用出错解决办法
- android 逐行显示 动画,在ImageView android中显示隔行扫描(逐行扫描)图像
- 国产化7K325T板卡学习资料: 基于国产化Ch-7K325T 的 FMC接口PCIe卡 国产化板卡