当前位置:编程学习 > JAVA >>

线程里面的join函数的作用

public class TestOne implements Runnable{
public static void main(String[] args) throws InterruptedException {
// TODO Auto-generated method stub
Thread t = new Thread(new TestOne());
t.start();
System.out.print("Started");
t.join();
System.out.print("Completed");
}
public void run(){
for(int i=0; i<4; i++){
System.out.print(i);
}
}
}

这个代码的输出为什么是Started0123Completed,t.join();在里面起到了什么作用,一直不太明白join函数的作用是什么? --------------------编程问答-------------------- join:当前主线程等待你开启的线程t执行完毕 --------------------编程问答--------------------
引用 1 楼 xxhhbb1538 的回复:
join:当前主线程等待你开启的线程t执行完毕
哪个是主线程。 --------------------编程问答--------------------
引用 2 楼 shirui8653719 的回复:
Quote: 引用 1 楼 xxhhbb1538 的回复:

join:当前主线程等待你开启的线程t执行完毕
哪个是主线程。

main啊,你不是在main中启动的线程t么。。。。 --------------------编程问答--------------------
引用 3 楼 xxhhbb1538 的回复:
Quote: 引用 2 楼 shirui8653719 的回复:

Quote: 引用 1 楼 xxhhbb1538 的回复:

join:当前主线程等待你开启的线程t执行完毕
哪个是主线程。

main啊,你不是在main中启动的线程t么。。。。
似乎是明白了,但我不明白为什么不先输出0123呢? --------------------编程问答--------------------
引用 4 楼 shirui8653719 的回复:
Quote: 引用 3 楼 xxhhbb1538 的回复:

Quote: 引用 2 楼 shirui8653719 的回复:

Quote: 引用 1 楼 xxhhbb1538 的回复:

join:当前主线程等待你开启的线程t执行完毕
哪个是主线程。

main啊,你不是在main中启动的线程t么。。。。
似乎是明白了,但我不明白为什么不先输出0123呢?

多线程,当然就是异步的了,你多运行几次,每次输出的结果可能都不一样,但是Completed肯定是最后输出 --------------------编程问答--------------------
引用 5 楼 xxhhbb1538 的回复:
Quote: 引用 4 楼 shirui8653719 的回复:

Quote: 引用 3 楼 xxhhbb1538 的回复:

Quote: 引用 2 楼 shirui8653719 的回复:

Quote: 引用 1 楼 xxhhbb1538 的回复:

join:当前主线程等待你开启的线程t执行完毕
哪个是主线程。

main啊,你不是在main中启动的线程t么。。。。
似乎是明白了,但我不明白为什么不先输出0123呢?

多线程,当然就是异步的了,你多运行几次,每次输出的结果可能都不一样,但是Completed肯定是最后输出
多谢 --------------------编程问答--------------------
引用 5 楼 xxhhbb1538 的回复:
Quote: 引用 4 楼 shirui8653719 的回复:

Quote: 引用 3 楼 xxhhbb1538 的回复:

Quote: 引用 2 楼 shirui8653719 的回复:

Quote: 引用 1 楼 xxhhbb1538 的回复:

join:当前主线程等待你开启的线程t执行完毕
哪个是主线程。

main啊,你不是在main中启动的线程t么。。。。
似乎是明白了,但我不明白为什么不先输出0123呢?

多线程,当然就是异步的了,你多运行几次,每次输出的结果可能都不一样,但是Completed肯定是最后输出

这个例子每次输出都是一样的,因为System.out.print是同步的 --------------------编程问答--------------------
引用 7 楼 lcf 的回复:
Quote: 引用 5 楼 xxhhbb1538 的回复:

Quote: 引用 4 楼 shirui8653719 的回复:

Quote: 引用 3 楼 xxhhbb1538 的回复:

Quote: 引用 2 楼 shirui8653719 的回复:

Quote: 引用 1 楼 xxhhbb1538 的回复:

join:当前主线程等待你开启的线程t执行完毕
哪个是主线程。

main啊,你不是在main中启动的线程t么。。。。
似乎是明白了,但我不明白为什么不先输出0123呢?

多线程,当然就是异步的了,你多运行几次,每次输出的结果可能都不一样,但是Completed肯定是最后输出

这个例子每次输出都是一样的,因为System.out.print是同步的

我擦我看错了,易做图,不要理我
补充:Java ,  Java SE
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,