Java多线程概念

时间:2015-01-17 07:03:24

标签: java multithreading

我对多线程有疑问。

假设我想同时执行两个动作,就像我想将朋友记录添加到文件中一样,并同时使用并发线程显示好友记录。

我创建了一个启动的单个线程,显示由它完成,在启动线程的main方法中,我执行了将记录保存到文件的操作。

这两个过程是否同时发生。

这是我的代码的一部分。

Runnable2 r2 = new Runnable2(L) ;
Thread t2 = new Thread(r2);
t2.start();

F.addElement(L);
oos1.writeObject(F);

1 个答案:

答案 0 :(得分:2)

没有同时发生的事情。一个将在另一个之前发生,但是,如果您不使用显式同步机制,则无法知道将首先执行哪个(它取决于操作系统,硬件上,JVM上)。很可能如果你运行程序100次,99次事件1将在事件2之前运行,而最后一次发生反过来,你会得到其中一个难以重现的错误。

你真的不应该指望顺序,你应该在使用多线程时使用同步机制。