社区
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加入到当前线程的屁股后面,是这个意思么??我理解的对么?
一般都什么情况下用到这个? 有没有具体的情况可以简单说一下
...全文
204
9
打赏
收藏
Java Thread的 关于 join()方法的一个小问题
java 中,thread 有方法join() 比如, Thread t = new Thread(); t.start(); t.join(); 我看的书上讲,t.join() 表示: 将我当前线程加入到t的结尾,以便在我(当前线程)能够个再次运行之前必须完成。 这个意思是说t.join是把t加入到当前线程的屁股后面,是这个意思么??我理解的对么? 一般都什么情况下用到这个? 有没有具体的情况可以简单说一下
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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
()
方法
1.
Thread
.
join
()
方法
是什么
Thread
.
join
()
方法
是
Thread
类中的
一个
方法
,该
方法
的定义是等待该线程终止。其实就是
join
()
方法
将挂起调用线程的执行, 直到被调用的线程完成它的执行。 举例说明:在主线程中调用t1.
join
()
方法
,主线程将等待t1线程终止。
join
()
方法
挂起主线程的执行,直到t1执行完毕后主线程才接着执行。 2.
Thread
.
join
如何使用 现...
Java
中的
Thread
.
join
()
方法
详解
在多线程编程中,线程的管理和协调是
一个
重要课题。
Java
提供了多种机制来实现线程之间的协调,其中之一就是
方法
。
join
()
方法
允许
一个
线程等待另
一个
线程完成,这在很多场景中是非常有用的。例如,当我们需要确保某个任务在继续之前必须先完成另
一个
任务时,
join
()
方法
就是
一个
很好的选择。
Java
Thread
中的
join
()
方法
解释
Join
作用
join
是定义在
Thread
类中的
方法
,作用是阻塞当前线程的执行,等到被调用
join
的线程对象执行完毕才执行继续执行当前线程。在
Java
源码中的定义如下: public final void
join
() throws InterruptedException {
join
(0); } public final synchronized void
join
(long millis) throws InterruptedException 接下来我们先来看看
join
的简单使用,这样能
Java
Thread
.
join
()详解
一、使用方式。
join
()是
Thread
类的
一个
方法
,启动线程后直接调用,例如:
Thread
t = new A
Thread
(); t.start(); t.
join
(); 二、为什么要用
join
()
方法
在很多情况下,主线程生成并起动了子线程,如果子线程里要进行大量的耗时的运算,主线程往往将于子线程之前结束,但是如果主线程处理完其他的事务后,需要用到子线程的处理结果,也就是 主线程需要等...
Java SE
62,634
社区成员
307,269
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章