我在Heinz Kabutz的Java專家通訊版本中看到了這一點,儘管Kabutz博士的其他(甚至全部)文章都有詳細解釋和詳細說明,但他似乎掩蓋了這是什麼代碼做什麼,或者更重要的是,它的意義是什麼:Java:嵌套同步塊
public class SomeObject {
private Object lock1;
private Object lock2;
public void doSomething() {
synchronized(lock1) {
synchronized(lock2) {
// ...
}
}
}
}
什麼是嵌套塊的含義是什麼?這是如何影響嘗試doSomething()
的不同線程?
在這種情況下,所有線程都會在外鎖處被阻塞,直到它被內鎖中的線程釋放。 – 2012-04-28 15:56:02
你發佈的snippit沒有做任何事情;唯一可以擁有'lock2'的線程是擁有'lock1'的線程。不知道代碼的其餘部分是什麼以及這些鎖被用於什麼,這是不可能回答的。 – 2012-04-28 15:56:48
你在閱讀哪篇文章? – Jeffrey 2012-04-28 16:00:38