在Java中實現單例模式時,我想到了這個問題。儘管下面列出的例子不是我的真實代碼,但與原始代碼非常相似。如何在Java中同步靜態方法
public class ConnectionFactory{
private static ConnectionFactory instance;
public static synchronized ConnectionFactory getInstance(){
if(instance == null){
instance = new ConnectionFactory();
}
return instance;
}
private ConnectionFactory(){
// private constructor implementation
}
}
因爲我不太肯定靜態同步方法的行爲,我從谷歌的一些建議 - 沒有(或儘可能少)在同一個類中的多個靜態同步方法。我猜在實現靜態同步方法時,使用屬於Class對象的鎖,以便多個靜態同步方法可能會降低系統的性能。
我對不對?或JVM使用其他機制來實現靜態同步方法?如果我必須在一個類中實現多個靜態同步方法,那麼最佳實踐是什麼?
謝謝大家!
親切的問候!
是您真正的代碼也關心延遲初始化?因爲這通常會浪費代碼和開發人員的時間;在聲明中初始化字段是99%的時間做的正確的事情,並且不需要同步。 – 2010-06-02 13:34:01