Java java.util.concurrent.Semaphoreドキュメントから、semaphore.acquire()がスレッドをブロックし、後でInterruptedExceptionによって中断された場合にどうなるかははっきりしませんでした。セマフォ値が減少しているので、セマフォを解放する必要がありますか?semaphore.acquire()がInterruptedExceptionを取得する場合は、semaphore.relase()が必要ですか?
try {
// use semaphore to limit number of parallel threads
semaphore.acquire();
doMyWork();
}
finally {
semaphore.release();
}
するか、InterruptedExceptionあるが、取得時に発生したときに、私はむしろ、release()を呼び出すべきではありません():
は現在、私はこのようなコードを使用していますか?
ありがとうございます。あなたのように私のコードを変更します。 – kasimir
これの問題は、semaphore.acquire()がInterruptedExceptionをスローすることです。 – jblack