[code="java"]
public class PrivateLock {
private final Object myLock = new Object();
void someMethod()
{
synchronized(myLock)
{
//访问或者修改person的状态
}
}
}
[/code]
请问这里说的私有锁保护的好处到底是什么?学习java并发并发编程实践的时候,看到这一段,有点不明白,
原文如下:
[color=blue]使用私有的锁对象,而不是对象的内部锁(或者任何其他的可公共访问的锁,有很多好处。私有的锁对象可以封装,这样客户代码无法得到它,然而可公共访问的锁允许客户代码涉足他的同步策略--正确的或者不正确的。客户不正确的得到另一个对象的锁,会引起活跃度方面的问题,另外要验证程序的正确的使用着一个可公共访问的锁,需要检查完整的程序,而不是一个单独的类。[/color]
对这一段解释,看的很模糊,那个大哥能详细阐述一下,为什么要这样,好处是什么。