2016-05-25 93 views
1

正在從另一個線程加載數據;線程安全?從另一個線程加載數據,線程安全嗎?

例如

public static void main(String[] args) 
{ 

    Thread threadOne = new Thread(new Runnable() 
    { 

     @Override 
     public void run() 
     { 
      loadContacts(); 
     } 

    }); 

    Thread threadTwo = new Thread(new Runnable() 
    { 

     @Override 
     public void run() 
     { 
      loadDefinitions();//Loads definitions 
     } 

    }); 

    threadOne.start(); 
    threadTwo.start(); 

} 

的代碼顯示該列表將使用線程1被加載的名單將上線2.裝載這是線程安全的?如果我們有訪問兩個列表的遊戲邏輯的最終線程?

回答

0

如果您確保訪問兩個列表的最終線程等待,直到threadOnethreadTwo都完成(例如,在嘗試從列表中讀取之前,請致電threadOne.join()threadTwo.join()

如果您不希望最終線程等待,那麼您將不得不添加一些同步,以確保線程安全。

+0

感謝您的回覆 – Zak