【发布时间】:2017-01-13 02:53:29
【问题描述】:
在link 中查看我的代码。我对连接概念的理解是,如果我在主线程中创建了一个线程“t2”。我写得像 t2.join()。首先将执行 t 对象的 run 方法下的所有内容,然后重新开始执行主线程。但是如果我在“t2”之前在主线程中创建了一个多线程“t1”。那时“t2”的执行应该首先完成,然后是“t1”。正确的?但是,如果您在我的链接代码中看到。 t1 和 t2 同时运行。为什么会这样?
【问题讨论】:
-
不要链接代码。在您的问题中包含相关部分。
-
没有看你的代码,但是如果你启动两个线程(然后并行运行,那是线程的点),然后你等待线程 2 使用
join()完成,那么当线程 2 结束时,您的主线程将继续,无论线程 1 在做什么。线程 1 可以在线程 2 之前或之后结束,没关系。 -
@ketan 我已经发布了我的答案stackoverflow.com/a/39335699/504133,希望对你有帮助
标签: java multithreading