好贷网好贷款

OSSemCreate初值为0和1的区别

发布时间:2016-12-3 23:55:27 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"OSSemCreate初值为0和1的区别",主要涉及到OSSemCreate初值为0和1的区别方面的内容,对于OSSemCreate初值为0和1的区别感兴趣的同学可以参考一下。

当 pend请求发出的时候信号量的值减1,当post的时候信号量的值加1,信号量的值0跟1分别是用来同步跟互斥的,什么是同步,什么是互斥呢。。。假设你把信号量的值设为0,有A,B连个任务,当A发出pend请求的时候它发现此事的信号量值为0就把它减1然后挂起等待,等待到什么时候呢?等待任务B执行post操作把信号量的值加1然后唤醒进程A,然后两个进程同步并发执行。。。通俗点解释就是任务A执行到某个地方的时候先停下来睡觉,等待任务B来叫醒它,然后两个任务一起并发运行,也就是几乎同时从那个点开始运行哈。。。 假设信号量的值是1,就是用来互斥的,A,B两个任务只能其中一个任务pend执行成功返回,此时信号量的值是0,另一个在pend请求的时候就必须把自己挂起等待刚刚那个请求成功的任务执行post操作才能唤醒继续执行。。。 OSSemCreate(0);

上一篇:pthread_kill的用法
下一篇:Character Controller 浅析

相关文章

相关评论