【发布时间】:2011-11-09 12:01:25
【问题描述】:
在以下情况下,我无法理解 join 的含义:
Thread t1=new MyThread(1);
Thread t2=new MyThread(2);
t1.start();
t2.start();
t1.join();
t2.join();
问题是: 据我了解,开始调用线程的运行方法。 所以主线程首先越过开始,因此所有线程都被初始化。 然后主线程转到 t1.join,这意味着主线程将等到 t1 结束他的运行,然后才继续到 t2.join()。 我不明白的是 t1,t2 同时已经开始,所以它们在 run 方法中。 因此结果应该是出乎意料的。我对吗? 那么为什么它会按顺序出现: 我有以下运行方法:
void run(){
for(int i=0; i<4; i++){
System.out.println(j);
}
}
当 j 是 MyThread 构造函数中的标识符时; 输出是:
2 2 2 2 1 1 1 1
或 1 1 1 1 2 2 2 2
【问题讨论】:
-
尝试迭代上限:i 到 100 可能会起作用..
-
您肯定需要接受有帮助的答案。尊重社区
标签: java multithreading join