2641|1

72

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

计数信号量如何创建呢??如何实现计数的呢? [复制链接]

计数信号量如何创建呢??如何实现计数的呢?如何实现任务同步??请给个演示程序!

最新回复

所谓计数信号量,就是除了像二进制信号量那样工作外, 它还保持对信号量释放次数的跟踪。 信号量每次释放,计数器加一; 信号量每次获取,计数器减一。 当计数器减到0,试图获取该信号量的任务被阻塞。 应用实例: SEM_ID semCount; semCount = semCCreate (SEM_PRIORITY, 3);    /* 初始计数器值:3 */ semTake (semCount);    /* 计数器值减1,为2 */     ... 临界代码     semTake (semCount);    /* 计数器值减1,为1 */         ... 临界代码     semGive (semCount);    /* 计数器值加1,为2 */ ... 临界代码 如此这般,随便建个工程,添加进去,临界区些一些打印代码就可以了。 由于安装的目标版本不一样,就不写详细的了。   详情 回复 发表于 2009-6-23 19:11
点赞 关注

回复
举报

72

帖子

0

TA的资源

一粒金砂(中级)

沙发
 
所谓计数信号量,就是除了像二进制信号量那样工作外,
它还保持对信号量释放次数的跟踪。

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

应用实例:

SEM_ID semCount;

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

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

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

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

 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条
【回帖赢京东卡】说说无线技术那些事儿
即日起—2月28日,参与回帖讨论都有机会赢取【30元京东卡】

查看 »

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表