从 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() ?