Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
多线程,启动,加入-java_Java_Multithreading - Fatal编程技术网

多线程,启动,加入-java

多线程,启动,加入-java,java,multithreading,Java,Multithreading,这样做有什么不对?我目前正在学习线程 thread1.start(); thread1.join(); thread2.start(); thread2.join(); 编辑:我知道这是一个错误,因为这是我学习的来源。然而,消息来源并没有提供一个关于为什么它是错误的答案 在线程上使用和不使用.join有什么区别?没有理由启动新线程,然后立即加入它join()将暂停当前线程,直到其他线程完成。这与书写具有相同的效果: thread1.run(); thread2.run(); 作者的意思可能是

这样做有什么不对?我目前正在学习线程

thread1.start();
thread1.join();
thread2.start();
thread2.join();
编辑:我知道这是一个错误,因为这是我学习的来源。然而,消息来源并没有提供一个关于为什么它是错误的答案


在线程上使用和不使用.join有什么区别?

没有理由启动新线程,然后立即加入它
join()
将暂停当前线程,直到其他线程完成。这与书写具有相同的效果:

thread1.run();
thread2.run();
作者的意思可能是:

thread1.start();
thread2.start();
thread1.join();
thread2.join();

通过这种方式,
thread1
thread2
可以同时执行。

如果您将其放在try/catch中,这不是一个错误,但是会有一个问题,为什么要这样做并使用thread?这将一直等到
thread1
失效,然后开始使用
thread2
。此示例将有助于您理解
join()
的概念(请阅读他们解释得非常好的注释):


很难判断这是不是一个错误。这取决于您在线程thread1和thread2中正在做什么,以及您试图实现什么

来自Java文档:

thread1.join();
导致当前线程暂停执行,直到thread1的线程终止


如果您试图同时启动两个线程,那么这是一个问题,因为线程将连续启动。

为什么要这样做?你明白它的作用吗?你明白
.join()
的作用吗?你看过文件了吗?
thread1.join();