スレッドがセマフォを取得できない場合 (許可がないため) はどうなりますか。待ち状態に移行しますか?
EDIT:セマフォが利用可能になると、スレッドの開始は前の実行シーケンスを再開します。
スレッドがセマフォを取得できない場合 (許可がないため) はどうなりますか。待ち状態に移行しますか?
EDIT:セマフォが利用可能になると、スレッドの開始は前の実行シーケンスを再開します。
スレッドがセマフォを取得できない場合 (許可がないため) はどうなりますか。待ち状態に移行しますか?
はい。あなたが話している場合java.util.concurrent.Semaphore(そして方法aquireはこれが起こることです:
このセマフォからパーミットを取得し、パーミットが使用可能になるまでブロックするか、スレッドが中断されます。
[...]
利用可能な許可がない場合、現在のスレッドはスレッド スケジューリングの目的で無効になり、次の 2 つのいずれかが発生するまで休止状態になります。
他のスレッドがこのセマフォの release() メソッドを呼び出し、現在のスレッドに次に許可が割り当てられます。また
他のスレッドが現在のスレッドに割り込みます。
tryAquireただし、名前が示すように、ロックを取得しようとするだけで、許可がない場合はブロックする代わりに false を返します。
セマフォが使用可能になると、スレッドは以前の実行シーケンスを再開しますか。
はい。別のスレッドがこのスレッドを呼び出した場合、そのreleaseスレッドから戻ってacquire実行を継続できます。