【发布时间】:2011-05-04 08:52:02
【问题描述】:
使用synchronized 可以实现类似的功能,还是我需要使用java.util...Lock:
public void outer() {
synchronized(lock) {
inner();
}
}
public void inner() {
thing1();
release(lock) {
result = doLongNetworkRequest();
}
thing2(result);
}
【问题讨论】:
-
请使用
try-finally(正确)。 / 你确定要这样构造你的代码吗? -
@Tom Hawtin:是的,我在处理锁时总是使用
finally。结构是这样的,因为实际上我有很多内部方法,并且出于 DRY 原因锁定在outer。
标签: java multithreading synchronization locking