(笔记)有关thread的相关知识之2---运行顺序

本文通过两个示例对比了Java中使用Thread子类与实现Runnable接口创建线程的区别,特别是join()方法的作用及如何影响主线程与子线程的执行顺序。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

[b][color=red]example1:[/color][/b]
package Thread;
public class TestThread6 {
public static void main(String args[]){
Thread t = new Runner6();
t.start();

for(int i=0; i<3; i++) {
System.out.println("MainThread: " + i);
}
}
}

class Runner6 extends Thread {
public void run() {
System.out.println(Thread.currentThread().isAlive());
for(int i=0;i<3;i++) {
System.out.println("SubThread: " + i);
}
}
}

---输出结果---
MainThread: 0
MainThread: 1
MainThread: 2
true
SubThread: 0
SubThread: 1
SubThread: 2

[b][color=red]example2:[/color][/b]

package Thread;
public class TestThread5 {
public static void main(String args[]){
Runner5 r = new Runner5();
Thread t = new Thread(r);
t.start();

try{
t.join();
}catch(InterruptedException e){
}

for(int i=0;i<3;i++){
System.out.println("主线程:" + i);
}
}
}

class Runner5 implements Runnable {
public void run() {
for(int i=0;i<3;i++) {
System.out.println("SubThread: " + i);
}
}
}
---输出结果---
SubThread: 0
SubThread: 1
SubThread: 2
主线程:0
主线程:1
主线程:2

[color=red]对比发现在执行thread的时候,先执行Main中的数据,然后执行thread中的run方法。而在example2中会发现,是先执行Thread中的run方法然后执行main中的方法,原因是适应的thread中的join()方法。此处值得注意。[/color]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值