释放“同步”锁定

时间:2011-05-04 08:52:03

标签: java multithreading synchronization locking

使用synchronized是可以的,或者我需要使用java.util...Lock

public void outer() {
 synchronized(lock) {
  inner();
 }
}

public void inner() {
 thing1();
 release(lock) {
  result = doLongNetworkRequest();
 }
 thing2(result);
}

2 个答案:

答案 0 :(得分:6)

您可以使用java.util.concurrent.locks。他们有lock()unlock()

答案 1 :(得分:2)

不幸的是,您无法释放同步块中保存的监视器。你必须使用一把或两把锁来做你想做的事。