社区
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加入到当前线程的屁股后面,是这个意思么??我理解的对么?
一般都什么情况下用到这个? 有没有具体的情况可以简单说一下
...全文
230
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
方法
详解
摘要:
Java
中的
join
()
方法
用于线程同步,让调用线程等待目标线程执行完毕。该
方法
有三个重载版本:无限等待、带超时等待和精确时间控制。其底层通过synchronized和wait()/notifyAll()机制实现,适用于协调线程执行顺序的场景,如数据初始化、分块处理等。使用时需处理可能抛出的InterruptedException。示例展示了等待单个或多个线程完成的用法,体现了该
方法
在多线程编程中的重要性。
Java
Thread
.
join
()
方法
详细解析
本文详细解析了
Java
中的
Thread
.
join
()
方法
。该
方法
用于实现线程同步,使调用线程等待目标线程终止或超时。文章介绍了三种重载
方法
:无参
join
()实现无限等待,带毫秒参数
join
(long millis)实现超时等待,以及高精度版本
join
(long millis, int nanos)。通过示例代码演示了基本用法、超时处理和多线程等待场景。重点分析了
join
()与sleep()的区别,指出
join
()会释放对象锁而sleep()不会。文章还提供了源码解析,说明其基于Object.wait()的实
java
中
Thread
.
join
()
方法
1.
Thread
.
join
()
方法
是什么
Thread
.
join
()
方法
是
Thread
类中的
一个
方法
,该
方法
的定义是等待该线程终止。其实就是
join
()
方法
将挂起调用线程的执行, 直到被调用的线程完成它的执行。 举例说明:在主线程中调用t1.
join
()
方法
,主线程将等待t1线程终止。
join
()
方法
挂起主线程的执行,直到t1执行完毕后主线程才接着执行。 2.
Thread
.
join
如何使用 现...
Java
中的
Thread
.
join
()
方法
详解
在多线程编程中,线程的管理和协调是
一个
重要课题。
Java
提供了多种机制来实现线程之间的协调,其中之一就是
方法
。
join
()
方法
允许
一个
线程等待另
一个
线程完成,这在很多场景中是非常有用的。例如,当我们需要确保某个任务在继续之前必须先完成另
一个
任务时,
join
()
方法
就是
一个
很好的选择。
Java SE
62,623
社区成员
307,257
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章