Java 多线程概念

Java multithreading concept

我有一个关于多线程的问题。

假设我想同时执行两个操作,比如我想将好友记录添加到文件中,并同时使用并发线程显示好友记录。

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

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

这是我的代码的一部分。

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

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

不存在同时的事情。一个会先于另一个发生,但是,如果您不使用显式同步机制,您将无法知道哪个会先执行(这取决于 OS,在硬件上,在 JVM 上)。很有可能如果你 运行 程序 100 次,99 次事件 1 将在事件 2 之前 运行,而最后一次它以相反的方式发生,你会遇到其中一个错误很难复制。

确实不应该指望顺序,使用多线程时应该使用同步机制。