社区
Java SE
帖子详情
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加入到当前线程的屁股后面,是这个意思么??我理解的对么?
一般都什么情况下用到这个? 有没有具体的情况可以简单说一下
...全文
184
9
打赏
收藏
Java Thread的 关于 join()方法的一个小问题
java 中,thread 有方法join() 比如, Thread t = new Thread(); t.start(); t.join(); 我看的书上讲,t.join() 表示: 将我当前线程加入到t的结尾,以便在我(当前线程)能够个再次运行之前必须完成。 这个意思是说t.join是把t加入到当前线程的屁股后面,是这个意思么??我理解的对么? 一般都什么情况下用到这个? 有没有具体的情况可以简单说一下
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
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。然后再回到当前进程?
有点乱。。。
相关推荐
Java
:控制线程
Thread
提供一些便捷的工具
方法
,通过这些便捷的工具
方法
可以很好地控制线程的执行。一、
join
线程
Thread
提供了让
一个
线程等待另
一个
线程完成的
方法
——
join
()
方法
。当在某个程序执行流中调用其他线程的
join
()
方法
时,调用线程将被阻塞,知道被
join
()
方法
加入
join
线程执行完为止。
join
()
方法
通常由使用线程的程序调用,以将
问题
划分为许多小
问题
,每个小
问题
分配
一个
线程。当所有的小
Java
基础之(三十七)
Java
多线程编程<二>
控制线程
join
线程
Thread
提供了
一个
线程等待另
一个
线程完成的
方法
:
join
方法
。当在某个程序执行流中调用其他线程的
join
方法
,调用
join
方法
的那个线程将被阻塞,直到被
join
方法
加入的
join
线程完成为止。
join
方法
通常由使用线程的程序调用,以将大
问题
划分成许多小
问题
,每个小
问题
配
一个
线程,当所有的小
问题
得到处理后,再调用主线程来进一步操作。例:class
Join
Thread
impl
Java
之 线程
join
Thread
提供了让
一个
线程等待另
一个
线程完成的
方法
——
join
方法
。当在某个程序执行流中调用其他线程的
join
方法
时,调用线程将被阻塞,知道被
join
方法
加入的
join
线程执行完为止。
join
方法
通常由使用线程的程序调用,以将大
问题
划分成许多小
问题
,每个小
问题
分配
一个
线程。当所有的小
问题
都得到处理后,再调用主线程来进一步操作。 package com.heh
Java
多线程编程二
控制线程
join
线程
Thread
提供了
一个
线程等待另
一个
线程完成的
方法
:
join
方法
。当在某个程序执行流中调用其他线程的
join
方法
,调用
join
方法
的那个线程将被阻塞,直到被
join
方法
加入的
join
线程完成为止。
join
方法
通常由使用线程的程序调用,以将大
问题
划分成许多小
问题
,每个小
问题
配
一个
线程,当所有的小
问题
得到处理后,再调用主线程来进一步操作。 例: class Joi...
java
控制线程_
Java
多线程(四)——控制线程
一、
join
线程
Thread
提供了让
一个
线程等待另
一个
线程完成的
方法
——
join
()
方法
。当某个线程执行过程中调用其他线程的
join
()
方法
,该调用线程将被阻塞,直到被
join
()
方法
加入的
join
线程执行完为止。使用
join
线程的
一个
情景:在程序中将
一个
大
问题
分为许多小
问题
,每
一个
小
问题
分配
一个
线程。当所有的小
问题
都得到处理后,再调用主线程来进一步操作。public class MainPrj ...
Java SE
62,567
社区成员
307,521
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告