當Java成員需要是線程安全的,我們做如下所示:靜態同步函數是如何工作的?
public synchronized void func() {
...
}
此語法相當於:
public void func() {
synchronized(this) {
....
}
}
也就是說,它實際上使用this
一個鎖。
我的問題是,如果我使用一個static
方法,如下所示:
class AA {
private AA() {}
public static synchronized AA getInstance() {
static AA obj = new AA();
return obj;
}
}
在這種情況下,什麼是鎖的方法制成的?
的AA級將被鎖定'同步(AA.class)',但沒有實例 – 2013-07-16 05:49:48
不在本地變量'obj'語法錯誤的靜態聲明? – Thilo