java - 从另一个线程加载数据,线程安全吗?

标签 java

正在从另一个线程加载数据;线程安全吗?

例如

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 上加载。这个线程安全吗?如果我们有一个游戏逻辑访问两个列表的最终线程?

最佳答案

只有当您确保访问两个列表的最终线程等待 threadOnethreadTwo 都完成时,这才是安全的,例如在尝试从列表中读取之前调用 threadOne.join()threadTwo.join()

如果你不想让最终线程等待,那么你就必须添加一些同步,以确保线程安全。

关于java - 从另一个线程加载数据,线程安全吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37448934/

相关文章:

Java:绞刑吏游戏,有 10 次机会,但只有 5 条命

java - 如何在矩形输出中显示二维数组?

java - 使用 Spring Boot 通过 jndi 查找配置两个数据源

java - 通过外部属性文件覆盖 spring-boot 应用程序配置

java - android Activity 的 onCreate 被调用了两次

java - 如何在 jpa 中创建两列左连接?

java - 在运行时获取成员字段的源顺序的保证方法?

java - AndroidHttpClient 无法解析为类型

java - Java中使用BufferedImage的双缓冲不显示图像

java - 定义一个 map 图层类java