继承thread类并重写run()方法是java创建线程的基础方式;需定义子类、重写run()编写任务逻辑、调用start()启动线程,而非直接调用run()。

在Java中,通过继承Thread类并重写run()方法是最基础的创建线程方式之一。这种方式简单直观,适合初学者理解线程执行逻辑的本质。
继承Thread类并实现run()方法
你需要定义一个类,让它继承Thread,然后覆盖run()方法——这个方法里写的就是该线程要执行的任务代码。注意:不要直接调用run(),而应调用start(),否则只是普通方法调用,不会启动新线程。
- 定义子类:如
MyThread extends Thread - 重写
run():把要并发执行的逻辑放在这里 - 创建实例后调用
start():JVM会为其分配栈空间,并调度执行run()
完整示例代码
以下是一个打印1到5的简单线程示例:
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
<font color="#888"><pre class="brush:php;toolbar:false;">class MyThread extends Thread {
public void run() {
for (int i = 1; i
运行结果中,t1和t2的输出会交错出现,说明两个线程真正并发执行。
注意事项与局限性
虽然这种方式容易上手,但有几点必须清楚:
-
Java不支持多继承:一旦继承了
Thread,就无法再继承其他类,灵活性受限 -
不符合面向接口编程思想:相比实现
Runnable接口,它将“任务”和“线程控制”耦合在一起 - 每个线程都独占一个Thread对象:不利于线程复用(比如在线程池中无法使用)
-
start()只能调用一次,重复调用会抛出IllegalThreadStateException
什么时候适合用这种方式?
适用于学习线程原理、编写简单演示程序,或任务逻辑与线程生命周期强绑定的小型工具类。实际项目中更推荐使用Runnable + Thread构造器,或直接使用ExecutorService。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










