信号量:我在哪里可以了解许可证,公平性,驳船等基本概念

时间:2011-05-01 00:51:53

标签: java android semaphore

developer.android.com中的信号量类概述看起来非常好 - 适用于那些已经熟悉概念和术语的人。

我熟悉那里的一些首字母缩写词和其他术语(例如FIFO,锁等),但permitsfairnessbarging等其他词汇对我来说是新的。

您能否推荐一个很好的在线资源来解释这些概念? (我可能会弄清楚允许公平是什么,但此时barging是未知的。)

编辑:收到下面的两个答案后,我意识到我需要刷新信号量(重新获取()术语)。我发现以下资源很有用:

  1. Semaphore_(programming)
  2. Introduction to Semaphores by Richard S. Hall博士

3 个答案:

答案 0 :(得分:2)

答案 1 :(得分:1)

答案 2 :(得分:1)

我自己没有遇到过这些问题,但我认为我会研究和总结我的发现,因为它比内部链接更符合内联答案(尽管如此,OP是在推荐阅读之后):

permit 是允许受信号量保护的代码的并发访问次数。虽然信号量通常是简单的Mutex,但有时候需要有多个线程触摸代码。这类似于打电话给呼叫中心,其中有一个电话号码连接到8个线路/运营商。

公平是指信号量严格按照谁先请求的方式提供给请求者的时间。保持呼叫中心类比,这意味着保持队列是一个严格的FIFO。

barging 本质上是一个带外请求,它将一个线程放到队列的顶部以获取信号量。类比是首选客户(或内部呼叫)到达呼叫中心队列的顶部,而不是等待轮到他们。

如果既没有指定公平也没有插入,那么根据上下文切换的时间,它可以在规范范围内授予对最新请求的访问权限。 “电话类比”是对公司总机/接收的呼叫,即使呼叫处于等待接听的呼叫状态,您也可能会幸运并在一个呼叫结束和另一个呼叫被暂停之间振铃。

如果我错了,请通过评论告诉我,我会修复/确认我的答案。