计数信号量如何创建呢??如何实现计数的呢?

good170 2009-06-23 06:28:07
计数信号量如何创建呢??如何实现计数的呢?如何实现任务同步??请给个演示程序!
...全文
133 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
luohyu 2009-06-23
  • 打赏
  • 举报
回复
所谓计数信号量,就是除了像二进制信号量那样工作外,
它还保持对信号量释放次数的跟踪。

信号量每次释放,计数器加一;
信号量每次获取,计数器减一。
当计数器减到0,试图获取该信号量的任务被阻塞。

应用实例:

SEM_ID semCount;

semCount = semCCreate (SEM_PRIORITY, 3); /* 初始计数器值:3 */

semTake (semCount); /* 计数器值减1,为2 */
... 临界代码
semTake (semCount); /* 计数器值减1,为1 */
... 临界代码
semGive (semCount); /* 计数器值加1,为2 */
... 临界代码

如此这般,随便建个工程,添加进去,临界区些一些打印代码就可以了。

由于安装的目标版本不一样,就不写详细的了。

2,179

社区成员

发帖
与我相关
我的任务
社区描述
xworks是美国 Wind River System 公司( 以下简称风河公司 ,即 WRS 公司)推出的一个实时操作系统。
社区管理员
  • VxWorks开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧