java中创建线程应继承thread类并重写run()方法,再调用start()启动;直接调用run()仅为普通方法执行,无法实现多线程。

1. 继承 Thread 并重写 run() 方法
必须重写 `run()` 方法,因为它是线程执行的入口。注意不要直接调用 `run()`,否则只是普通方法调用,不会开启新线程。
示例:
class MyThread extends Thread {
@Override
public void run() {
System.out.println("线程 " + getName() + " 正在运行");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
Thread.currentThread().interrupt(); // 恢复中断状态
}
System.out.println("线程 " + getName() + " 执行完毕");
}
}
2. 创建实例并调用 start() 启动
创建子类对象后,必须调用 `start()` 方法,JVM 才会为其分配资源、调度执行 `run()` 中的逻辑。
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
常见错误写法(不推荐):
-
new MyThread().run();→ 只是主线程里顺序执行,没真正多线程 -
new MyThread().start();→ ✅ 正确方式
3. 可选:设置线程名称或优先级
便于调试和管理多个线程:
- 构造时传入名称:
new MyThread("Worker-1") - 运行时设置:
thread.setName("Task-A") - 调整优先级(范围 1–10):
thread.setPriority(Thread.MAX_PRIORITY)(慎用,不保证效果)
4. 注意事项与局限性
虽然简单,但继承 `Thread` 类有明显限制:
- Java 不支持多重继承,一旦继承了 `Thread`,就无法再继承其他类
- 线程逻辑与线程对象强耦合,不利于复用和解耦
- 更推荐的方式是实现 `Runnable` 或 `Callable` 接口(配合 `Thread` 构造器或线程池使用)
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










