需要 semaphore.relase() if semaphore.acquire() get InterruptedException?
2022-09-04 19:22:56
从Java java.util.concurrent.Semaphore文档来看,我不太清楚如果semaphore.acquire()阻塞线程,后来被中断Exception打断会发生什么。信号量值是否已降低,因此是否需要释放信号量?
目前我正在使用这样的代码:
try {
// use semaphore to limit number of parallel threads
semaphore.acquire();
doMyWork();
}
finally {
semaphore.release();
}
或者,当在 acquire() 期间发生中断异常时,我是否应该不调用 release()?