【发布时间】:2014-08-05 20:10:36
【问题描述】:
在Java Concurrency in practice book 中,我在第4章遇到了一段代码
public Class PrivateLock{
private final Object myLock=new Object();
Widget widget;
void someMethod()
{
synchronized(myLock)
{
// Access or modify the state of widget
}
}
}
这本书说使用私有锁对象有很多好处。将锁对象设为私有会封装锁,以便客户端代码无法获取它,而可公开访问的锁允许客户端代码正确或错误地参与其同步策略。
我的怀疑是
如果我有自己的Runnable方法,我调用实例化这个类并调用
someMethod(),会不会获取锁失败?如果是这样,代码的所有者如何利用这个锁并调用
someMethod()?因为他还要实例化这个类的一个对象,调用someMethod(),同样的我,客户端也在做。
我怀疑这是重复的,但我没有在这些线程中找到我的答案。
【问题讨论】:
标签: java multithreading locking