0

谁能解释如何使用信号量编程倒计时锁存器作为唯一允许使用的同步原语。?谢谢。

4

1 回答 1

1

倒计时锁存器允许您等待锁存器,直到它的当前计数减少到零。这意味着您可以让一个线程等待,直到其他线程完成一定数量的工作,每个线程在完成任何工作后都会倒计时。

信号量允许您为任务分配许可。您可能只希望有 10 个许可可用,因此第 11 个请求许可的任务必须等到另一个任务返回一个。

因此,例如,您可以拥有一个只有 1 个可用许可的信号量,并锁定它。这将导致与同步方法/块相同的行为。一旦许可被返回,另一个线程可以获得它以进入锁定块。

 sem.acquire();

 doSomeStuff();

 sem.release();

如果信号量仅使用 1 个许可进行初始化,则与以下内容相同:

synchronized(someLock) {

  doSomeStuff();

}
于 2013-09-22T18:28:10.003 回答