Java Thread的 关于 join()方法的一个小问题

manutdsodagreen 2010-03-09 01:09:35
java 中,thread 有方法join()
比如,
Thread t = new Thread();
t.start();
t.join();

我看的书上讲,t.join() 表示: 将我当前线程加入到t的结尾,以便在我(当前线程)能够个再次运行之前必须完成。

这个意思是说t.join是把t加入到当前线程的屁股后面,是这个意思么??我理解的对么?

一般都什么情况下用到这个? 有没有具体的情况可以简单说一下
...全文
194 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
chenliuyang 2010-03-09
  • 打赏
  • 举报
回复
join();谁去调用他,谁就在他的对象上睡觉,只等这个对象把你叫起来, 也就是线程结束时才调用this.notifyAll();吧
lryxxh 2010-03-09
  • 打赏
  • 举报
回复
恐怕你每次运行都会有不同的结果把
dengsf 2010-03-09
  • 打赏
  • 举报
回复
join就是等待线程结束,不要想得太复杂。
manutdsodagreen 2010-03-09
  • 打赏
  • 举报
回复
还有,我进行这个测试
tj1.start();
tj2.start();
tj2.join();
tj1.join();

这样就是运行 tj1, tj2, tj1 ,tj2 这个顺序

如果这样:
tj1.start();
tj2.start();
tj1.join();
tj2.join();
结果的顺序是 tj1, tj1, tj2, tj1....

很诡异。。到底是什么意思呢?
manutdsodagreen 2010-03-09
  • 打赏
  • 举报
回复
你得例子我跑了,谢谢。但是 如果把 tj2.join();放到 tj2.start();后面,结果就又是轮流输出了。
那tj1.join()没有起作用?或者 在这个情况下,起了什么作用?

我刚才查API 对JOIN()就一句话解释 :“Waits for this thread to die.”
意思是说,比如遇到tj1.Join(),就使当前thread去waiting,直到tj1的thread die。然后再回到当前进程?
有点乱。。。
爱上智能 2010-03-09
  • 打赏
  • 举报
回复
public class TestJoin extends Thread{
@Override
public void run() {
for(int i=1;i<10;i++){
System.out.println(Thread.currentThread().getName()+"="+i);
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}

public static void main(String[] args) throws InterruptedException {
TestJoin tj1=new TestJoin();
TestJoin tj2=new TestJoin();

tj1.start();
tj1.join();//你试着注释这行代码看看有没有发现不同的结果
tj2.start();


tj1.join() 方法意思就说:优先执行tj1线程,直到tj1线程执行完,再执行其他线程.
ChDw 2010-03-09
  • 打赏
  • 举报
回复
join()方法意思就是等待tj2的结束,直到tj2结束或者超时了才会返回
wulan49 2010-03-09
  • 打赏
  • 举报
回复
你得例子我跑了,谢谢。但是 如果把 tj2.join();放到 tj2.start();后面,结果就又是轮流输出了。
那tj1.join()没有起作用?或者 在这个情况下,起了什么作用?

我刚才查API 对JOIN()就一句话解释 :“Waits for this thread to die.”
意思是说,比如遇到tj1.Join(),就使当前thread去waiting,直到tj1的thread die。然后再回到当前进程?
有点乱。。。

62,624

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧