java 线程 join方法
梁兴晨
2021-06-09 05:43:36
共 5 个回答
梁宇
2021-06-12 02:22:50
你采纳的答案第一句话就是错误的.
join方法是 谁调用暂停谁
你的那道考试题,答案B,当另一个线程Join方法被调用时,停的是另一个线程,所以不会影响 本线程的运行状态。
按照他的解释 main都等待thread-0了,已经改变了main的状态, 还选B?
称志利
2021-06-13 17:30:35
*
* public final void join():等待该线程终止。
*/
public class ThreadJoinDemo {
public static void main(String[] args) {
ThreadJoin tj1 = new ThreadJoin();
ThreadJoin tj2 = new ThreadJoin();
ThreadJoin tj3 = new ThreadJoin();
tj1.setName("李渊");
tj2.setName("李世民");
tj3.setName("李元霸");
tj1.start();
try {
tj1.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
tj2.start();
tj3.start();
}
}
class ThreadJoin extends Thread {
@Override
public void run() {
for (int x = 0; x < 100; x++) {
System.out.println(getName() + ":" + x);
}
}
}
只有在tj1线程执行完后其他线程才开始执行
卢子霖
2021-06-15 14:51:24
您好,提问者:
当main线程调用到Thread-0的时候,这个时候main线程是等待状态,直到join守护完毕才执行下面的东西。
join方法是先将线程池中的其它线程wait状态,join执行完毕,又调用了notifyAll()唤醒所有线程中的线程。
鲍敏杭
2021-06-17 16:39:07
这个解释是有点扯淡,我觉得应该是 D。 notify是通知其他阻塞的线程可以转变状态。
冯人萍
2021-06-17 06:29:26
main是死的最快的线程。。
阅读原文