2016-04-04 19 views
0

Çok fazla getirilecek statik bir değişkenim var. Başlatma işlemini senkronize etmek istiyorum, ancak tembel yüklü olmasını istiyorum. Yani finali yapmamak.Sadece statik bir değişkenin atanması senkronizasyonu

Bu doğru/kabul edilebilir bir yaklaşım mı?

İşte kod.

public class Test { 

    private static Object staticObj; 

    public static Object getStaticObj() throws Exception{ 
     if(staticObj == null){ 
      assignNewStaticObj(); 
     } 
     return staticObj; 
    } 

    private static void assignNewStaticObj(){ 
     synchronized(staticObj){ 
      if (staticObj == null) { 
       staticObj = new Object(); 
      } 
     } 
    } 

} 
+0

Kod biçimlendirme –

cevap

0
Sen static ucuz ve tembel değil başka bir şeye senkronize edebilirsiniz

:

public class Test { 

    ... 
    private static Object staticObjSync = new Object(); 

    ... 

    private static void assignNewStaticObj() { 
     synchronized(staticObjSync) { 

     ...