簡體   English   中英

線程調用帶有枚舉的單例

[英]Singleton with Enum called by threads

嗨,有人可以幫助我理解以下代碼段的輸出嗎?

枚舉-

public enum SingletonEnum {
  INSTANCE;
  int num;

  public void demo(){
    System.out.println(num);
  }
}

主類-

public static void main(String[] args) {        
    Thread t1 = new Thread(new Runnable(){
        public void run(){
            SingletonEnum samp = SingletonEnum.INSTANCE;
            samp.num= 5;
            samp.demo();
        }
    });

    Thread t2 = new Thread(new Runnable(){
        public void run(){
            SingletonEnum temp = SingletonEnum.INSTANCE;
            temp.num= 8;
            temp.demo();
        }
    });
    t1.start();
    t2.start();     
}

o / p是8和8。但是,如果我在枚舉中添加私有構造函數,則o / p是5和8。o / p背后的邏輯是8和8。

您的代碼不同步。 這只是未指定的行為,在這種情況下您可以觀察到任何東西。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM