比方说,我有一个ReentrantLock
,如何正确范围锁定
ReentrantLock foo = new ReentrantLock();
和使用该锁的方法bar
,
public void bar()
{
foo.lock();
try
{
methodOne();
}
finally
{
foo.unlock();
}
}
和methodOne
调用方法methodTwo
同样使用该锁,
public void methodTwo()
{
foo.lock();
try
{
// do something
}
finally
{
foo.unlock();
}
}
是否更好释放th在拨打电话methodOne
之前,请锁上bar
?一般来说,在调用另一种方法之前释放锁是否是一种好的做法?