1
私はセマフォを使用してバインドされたキューを作成しようとしています。セマフォのすべての許可を取得する必要があります。どのようにJavaのすべての許可を取得するには?
Javaにはこれを行う方法はありますか?
私はセマフォを使用してバインドされたキューを作成しようとしています。セマフォのすべての許可を取得する必要があります。どのようにJavaのすべての許可を取得するには?
Javaにはこれを行う方法はありますか?
acquire(int)
を呼び出すと、指定された許可数が取得されるまでブロックされます。
drainPermits()
を呼び出すと、現在利用可能な許可が取得され、すぐに返されます。
「セマフォのすべての許可」を取得するという概念は、実際には意味をなさない。 Semaphore
が最初の数の無料許可で作成されますが、release()
の追加許可とその後acquire()
の許可があります。したがって、あなたのアプリケーションは割り当てたい許可数を追跡し、数字が変更されていないことを確認するために、慎重にacquire()
とrelease()
の呼び出しを調整する必要があります。
参照https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/Semaphore.html#acquire(int) –
@ShireResident、実際には、drainPermits()メソッドは良いかもしれません適しています。 –
@ jameslarge。答えをありがとう –