从另一个线程加载数据,它是否安全?

时间:2016-05-25 22:54:21

标签: 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加载List,并且将在线程2上加载List。这个线程是否安全?如果我们有游戏逻辑的最终线程访问这两个列表?

1 个答案:

答案 0 :(得分:0)

只有在确保访问两个列表的最终线程等到threadOnethreadTwo完成时,这才是安全的。在尝试从列表中读取之前,请先致电threadOne.join()threadTwo.join()

如果您不希望最终线程等待,则必须添加一些同步,以确保线程安全。