继承thread类实现多线程需创建多个thread实例并调用start(),每个实例由jvm分配独立执行路径;子类须重写run()方法封装线程逻辑。

Java 中继承 Thread 类可以实现多线程,但“多个线程并发执行”不是靠继承多少次 Thread 类决定的,而是靠创建并启动多个 Thread 实例。每个实例调用 start() 后,JVM 会为其分配独立执行路径,从而实现并发。
继承 Thread 类的基本写法
定义一个类继承 Thread,重写 run() 方法,在其中编写线程要执行的逻辑:
class MyTask extends Thread {
private String name;
public MyTask(String name) {
this.name = name;
}
@Override
public void run() {
for (int i = 0; i
启动多个线程实现并发
继承一次 Thread 类,就可以创建多个实例——这才是并发的关键:
- 每个实例代表一个独立线程对象
- 必须调用
start()(不是run()),才能真正开启新线程 - 多个
start()调用几乎同时发生,由操作系统调度执行,体现“并发”
public class Main {
public static void main(String[] args) {
MyTask t1 = new MyTask("线程-1");
MyTask t2 = new MyTask("线程-2");
MyTask t3 = new MyTask("线程-3");
t1.start(); // 启动线程1
t2.start(); // 启动线程2
t3.start(); // 启动线程3
}
}
注意:不能重复 start 同一个线程
一个 Thread 实例只能调用一次 start(),否则抛出 IllegalThreadStateException:
-
t1.start(); t1.start();→ 错误 - 想多次运行相同逻辑?应新建不同实例,如
new MyTask("A").start(); new MyTask("B").start();
和 Runnable 方式对比(简要)
继承 Thread 简单直接,但有局限:
- Java 不支持多继承,类继承了
Thread就不能再继承其他类 - 更推荐使用
Runnable或Callable+Thread构造器,解耦任务与线程 - 例如:
new Thread(new MyRunnable()).start();更灵活、复用性更强
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











