释放"同步"锁定

Bar*_*lom 5 java multithreading synchronization locking

这样的事情是可能的synchronized,或者我需要使用java.util...Lock:

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

public void inner() {
 thing1();
 release(lock) {
  result = doLongNetworkRequest();
 }
 thing2(result);
}
Run Code Online (Sandbox Code Playgroud)

Boz*_*zho 6

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


Mih*_*der 2

不幸的是,您无法释放同步块期间持有的监视器。您将必须使用一两把锁才能完成您想要的操作。