Java中创建多线程需继承Thread类并重写run()方法定义任务,再调用start()启动线程;直接调用run()仅作普通方法执行,无法实现并发。

Java 中通过继承 Thread 类创建多线程,核心是**重写 run() 方法定义线程任务,再调用 start() 启动线程**。直接调用 run() 只是普通方法执行,不会开启新线程。
继承 Thread 类的正确步骤
1. 自定义类继承 Thread
2. 重写 run() 方法,在其中编写线程要执行的逻辑
3. 创建该类的实例(即线程对象)
4. 调用实例的 start() 方法 —— 这才是启动线程的唯一合法方式
常见错误:别把 start() 写成 run()
以下代码是典型误区:
new MyThread().run(); // ❌ 仍在主线程执行,无并发效果
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
正确写法是:
立即学习“Java免费学习笔记(深入)”;
new MyThread().start(); // ✅ JVM 创建新线程并自动调用 run()
完整可运行示例
```java
class CounterThread extends Thread {
private final String name;
CounterThread(String name) { this.name = name; }
public void run() {
for (int i = 0; i
System.out.println(name + ": " + i);
try { Thread.sleep(100); } catch (InterruptedException e) { return; }
}
}
}
// 使用:
public class Main {
public static void main(String[] args) {
new CounterThread("A").start();
new CounterThread("B").start();
}
}
```
注意事项与局限性
• 一个线程对象只能调用一次 start(),重复调用抛出 IllegalThreadStateException
• 继承方式使类失去继承其他父类的机会(Java 单继承限制)
• 不便于共享数据:每个线程实例持有独立状态,若需协作,建议改用 Runnable + Thread 构造器方式
• 线程名默认为 “Thread-N”,可通过 setName() 或构造器指定,利于调试

















