从Java的java.util.concurrent.Semaphore文档中,我不太清楚如果semaphore.acquire()阻塞线程并且之后被InterruptedException中断会发生什么。信号量值已经减少了吗?因此需要释放信号量吗?
目前,我正在使用以下代码:
try {
// use semaphore to limit number of parallel threads
semaphore.acquire();
doMyWork();
}
finally {
semaphore.release();
}
当在acquire()期间发生InterruptedException时,我是否应该避免调用release()呢?