4
は、私は、JavaセマフォクラスのdrainPermitsの契約を理解しようとしている許可がない場合、Semaphor.drainPermitsは何を行いますか?
のJavaDocは、単に読み:
公共int型drainPermits()
Acquire and return all permits that are immediately available. Returns: the number of permits
何の許可がない場合を現在利用可能なブロックとブロックが利用可能になるまで待機しますか?
誰かがロック用に使用していたように見えるコードを見直していると、彼らは厄介な驚きのためにいるのでしょうか? – Uri
彼らは何をしているのかによって異なります。 「ロックするためにそれを使用する」は実際にはほとんどヒントを与えません。 –
もしそれらを1に初期化してドレインを使って "tryAcquire"を実装しても問題ありません。 多くの異なる言語とシステムでは、(ネストしていない)mutexの多くの実装は、1に初期化されたセマフォです。 – pgast