我對Java的併發性比較陌生(還沒有閱讀JCIP,但它在我的列表中!),並且我有一個關於鎖定行爲的問題。具體來說,Java是否鎖定對象的引用或對象本身?Java同步/鎖定
代碼示例(不是SSCCE,因爲我不知道如何來演示在實踐中,這種行爲):如果另一個線程執行method1()
static final Object lockA = new Object();
public void method1() {
synchronized(lockA) {
// do stuff here
}
}
public void method2() {
Object lockB = lockA;
synchronized(lockB) {
// do stuff
}
}
(因此對lockA
鎖),將method2()
被允許執行?
謝謝!
太棒了,謝謝! – BenCole