从另一个线程加载数据;线程安全?
例如
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加载List,并且将在线程2上加载List。这个线程是否安全?如果我们有游戏逻辑的最终线程访问这两个列表?
答案 0 :(得分:0)
只有在确保访问两个列表的最终线程等到threadOne
和threadTwo
完成时,这才是安全的。在尝试从列表中读取之前,请先致电threadOne.join()
和threadTwo.join()
。
如果您不希望最终线程等待,则必须添加一些同步,以确保线程安全。