首页 > 其他 > 详细

信号量

时间:2014-12-16 22:22:50      阅读:351      评论:0      收藏:0      [点我收藏+]

                 信号量的取值可以为0(表示没有保存下来的唤醒操作),可以为正值(表示有一个或者多个唤醒操作)。

      两个操作:down操作:若该值大于0,将其值减1(即用掉一个保存的唤醒信号);若该值为0,则进程将睡眠,并且down操作并未结束!检查数值,修改变量值以及可能发生的睡眠操作均作为一个单一的,不可分割的原子操作完成。保证一旦一个信号量操作开始,则在该操作完成或者阻塞之前,其他进程均不允许访问该信号量。所谓原子操作,是指一组相关联的操作要么都不间断地执行,要么都不执行

      Dijkstra原来的论文中,他分别使用名称是P和V而不是down和up

       信号量的实例:

      用信号量解决生产者-消费者问题

信号量

原文:http://www.cnblogs.com/lovejin/p/4168084.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!