Monitor.TryEnter在Java中等效

tes*_*der 2 java multithreading thread-safety

如果某个线程在java中通过此方法拥有,如何跳过方法,我知道.net存在Monitor.TryEnter,我可以通过以下方式实现:

if(Monitor.TryEnter()){
 //do work
}
//else skip
Run Code Online (Sandbox Code Playgroud)

但是我怎样才能在java中实现这种行为,这在java中是相同的Monitor.TryEnter.

thk*_*ala 5

会对ReentrantLock#tryLock()你有用吗?

它具有您想要的行为,它需要一个显式的锁定对象,因此它不能与嵌入式Java对象监视器一起使用 - 我不相信它对Java对象监视器是等效的tryLock().