linux多线程信号量.docVIP

  • 3
  • 0
  • 约4.14千字
  • 约 7页
  • 2016-06-15 发布于安徽
  • 举报
linux多线程信号量.doc

linux 多线程编程---- 信号量的使用 时间:2010-02-26 11:19来源:未知 作者:admin 点击: 153 次   信号是E.W.Dijkstra在二十世纪六十年代末设计的一种编程架构。Dijkstra的模型与铁路操作有关:假设某段铁路是单线的,因此一次只允许一列火车通过。信号将用于同步通过该轨道的火车。火车在进入单一轨道之前必须等待信号灯变为允许通行的状态。火车进入轨道后,会改变信号状态,防止其他火车进入该轨道。火车离开这段轨道时,必须再次更改信号的状态,以便允许其他火车进入轨道。在计算机版本中,信号以简单整数来表示。线程等待获得许可以便继续运行,然后发出信号,表示该线程已经通过针对信号执行P操作来继续运行。线程必须等到信号的值为正,然后才能通过将信号值减1来更改该值。完成此操作后,线程会执行V操作,即通过将信号值加1来更改该值。这些操作必须以原子方式执行,不能再将其划分成子操作,即,在这些子操作之间不能对信号执行其他操作。在P操作中,信号值在减小之前必须为正,从而确保生成的信号值不为负,并且比该值减小之前小1。在P和V操作中,必须在没有干扰的情况下进行运算。如果针对同一信号同时执行两个V操作,则实际结果是信号的新值比原来大2。对于大多数人来说,如同记住Dijkstra是荷兰人一样,记住P和V本身的含义并不重要。但是,真正学术的角度来说,P代表prolage

文档评论(0)

1亿VIP精品文档

相关文档