2016-05-25 97 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