【发布时间】:2020-08-23 10:37:28
【问题描述】:
这一定有一个简单的答案,但我只是不知道它是什么......如果我说,在 Java 中执行以下操作:
class First{
public void first(){
Second second=new Second();
synchronized(this){
second.second(this);
}
second.second(this);
}
}
如何在Second.second 中检查在调用此方法之前已获得同步锁,如果不是这种情况可能会抛出异常?例如:
class Second{
public void second(First first){
if(!/*want to test that lock obtained for first, but don't know how*/){
throw new RuntimeException("Must lock first!");
}
}
}
如果上面的代码不明显,我希望第二次调用 Second.second 以抛出 RuntimeException。
【问题讨论】:
标签: java synchronized