#3种方式:Thread类、Runnable接口、Callable接口

# Thread类官方文档:

image-20210309192456764继承Thread类重写**run()**方法创建线程对象,调用start()方法启动线程# 继承Thread创建线程public class TestThread1 extends Thread{

@Override

public void run() {

for (int i = 0; i < 20; i++) {

System.out.println("我在看代码===>" + i);

}

}

// main线程,主线程

public static void main(String[] args) {

// 创建线程对象

TestThread1 testThread1 = new TestThread1();

// 调用start()方法开启线程

testThread1.start();

for (int i = 0; i < 20; i++) {

System.out.println("我在学习多线程==>" + i);

}

}

}

我在学习多线程==>0

我在学习多线程==>1

我在学习多线程==>2

我在学习多线程==>3

我在学习多线程==>4

我在学习多线程==>5

我在看代码===>0

我在看代码===>1

我在学习多线程==>6

我在看代码===>2

我在看代码===>3

我在看代码===>4

我在看代码===>5

我在看代码===>6

我在看代码===>7

我在看代码===>8

我在看代码===>9

我在看代码===>10

我在看代码===>11

我在看代码===>12

我在看代码===>13

我在看代码===>14

我在学习多线程==>7

我在学习多线程==>8

我在看代码===>15

我在学习多线程==>9

我在学习多线程==>10

我在学习多线程==>11

我在学习多线程==>12

我在看代码===>16

我在看代码===>17

我在看代码===>18

我在学习多线程==>13

我在看代码===>19

我在学习多线程==>14

我在学习多线程==>15

我在学习多线程==>16

我在学习多线程==>17

我在学习多线程==>18

我在学习多线程==>19

Process finished with exit code 0

线程不一定立即执行,CPU调度安排。

2025-09-17 08:15:01