我在java中为我的大学做了一项工作,我需要知道是否有某种方法可以知道信号量是否会阻止一个获取的进程。
答案 0 :(得分:0)
是的,如果您使用的是java.util.concurrent.Semaphore
:
boolean tryAcquire()
只有在获得此信号量的许可时才会获得许可 一个在调用时可用。
boolean acquired = semaphore.tryAcquire();
if (acquired) {
System.out.println("Got it!");
semaphore.release();
} else {
System.out.println("Returned immediately, would have blocked");
}