正在从另一个线程加载数据;线程安全吗?
例如
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 上加载。这个线程安全吗?如果我们有一个游戏逻辑访问两个列表的最终线程?
只有当您确保访问两个列表的最终线程等待 threadOne
和 threadTwo
都完成时,这才是安全的,例如在尝试从列表中读取之前调用 threadOne.join()
和 threadTwo.join()
。
如果你不想让最终线程等待,那么你就必须添加一些同步,以确保线程安全。
我是一名优秀的程序员,十分优秀!