![](/img/trans.png)
[英]java - calling synchronized method from inside synchronized while waiting
[英]Calling a synchronized method from a new thread created inside another synchronized method of the same class in Java
假设一个类具有如下两种方法:
public synchronized void methodA() {
// do some stuff
new Thread() {
public void run() {
methodB();
}
}.start();
}
public synchronized void methodB() {
// do some stuff
}
我们呼吁methodA()
将新的线程通过调用一个被封锁methodA()
可能不是: new Thread().start()
立即返回,因此在实际启动新线程并methodB()
,很可能原始线程已经退出methodA()
。
但是,如果您这样做:
public synchronized void methodA() throws InterruptedException {
new Thread() {
public void run() {
methodB();
}
}.start();
Thread.sleep(10000);
}
您的methodB
将阻塞大约10秒钟,等待原始线程释放锁。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.