社区
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加入到当前线程的屁股后面,是这个意思么??我理解的对么?
一般都什么情况下用到这个? 有没有具体的情况可以简单说一下
...全文
194
9
打赏
收藏
Java Thread的 关于 join()方法的一个小问题
java 中,thread 有方法join() 比如, Thread t = new Thread(); t.start(); t.join(); 我看的书上讲,t.join() 表示: 将我当前线程加入到t的结尾,以便在我(当前线程)能够个再次运行之前必须完成。 这个意思是说t.join是把t加入到当前线程的屁股后面,是这个意思么??我理解的对么? 一般都什么情况下用到这个? 有没有具体的情况可以简单说一下
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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。然后再回到当前进程?
有点乱。。。
java
thread
join
方法
_
JAVA
THREAD
.
JOIN
方法
详解
join
是
Thread
类的
一个
方法
,启动线程后直接调用,例如:
Thread
t = new A
Thread
(); t.start(); t.
join
();二、为什么要用
join
()
方法
在很多情况下,主线程生成并起动了子线程,如果子线程里要进行大量的耗时的运算,...
Java
Thread
中的
join
()
方法
解释
join
是定义在
Thread
类中的
方法
,作用是阻塞当前线程的执行,等到被调用
join
的线程对象执行完毕才执行继续执行当前线程。在
Java
源码中的定义如下: public final void
join
() throws InterruptedException {
join
(0)...
Java
Thread
.
join
()详解
join
()是
Thread
类的
一个
方法
,启动线程后直接调用,例如:
Thread
t = new A
Thread
(); t.start(); t.
join
(); 二、为什么要用
join
()
方法
在很多情况下,主线程生成并起动了子线程,如果子线程里要进行大量的耗时的...
多线程中
Thread
的
join
方法
join
方法
是
Thread
类中的
一个
方法
,该
方法
的定义是等待该线程执行直到终止。其实就说
join
方法
将挂起调用线程的执行,直到被调用的对象完成它的执行。
join
实例(以一道面试题为例) 现在有T1、T2、T3三个线程,你怎样...
【
Java
】
Thread
类中的
join
()
方法
原理
join
()是
Thread
类的
一个
方法
。根据jdk文档的定义: public final void
join
()throws InterruptedException: Waits for this
thread
to die.
join
()
方法
的作用,是等待这个线程结束;但显然,这样的定义并不清晰...
Java SE
62,624
社区成员
307,283
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章