Java 从另一个线程加载数据,它是线程安全的吗?
正在从另一个线程加载数据;线程安全 比如说Java 从另一个线程加载数据,它是线程安全的吗?,java,Java,正在从另一个线程加载数据;线程安全 比如说 public static void main(String[] args) { Thread threadOne = new Thread(new Runnable() { @Override public void run() { loadContacts(); } }); Thread threadTwo = new
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()
如果不希望最后一个线程等待,则必须添加一些同步,以确保线程安全。只有确保访问这两个列表的最后一个线程等待直到
threadOne
和threadTwo
都完成,这才是安全的,例如调用threadOne.join()
和threadTwo.join()
,然后再尝试从列表中读取
如果您不希望最后一个线程等待,那么您必须添加一些同步,以确保线程安全。感谢回复感谢回复