比方說,我有一個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
?一般來說,在調用另一種方法之前釋放鎖是否是一種好的做法?