多线程是 Java 并发编程的基石。本文厘清进程与线程概念、JVM 启动线程模型、Thread 继承创建线程的标准姿势、运行时随机性特性与常见误区。
java.exe 进程启动 → 主线程执行 main() + GC 线程 + JIT 编译线程等// 1. 定义子类
class MyThread extends Thread {
@Override
public void run() {
for (int i = 0; i < 60; i++) {
System.out.println("MyThread run " + i);
}
}
}
// 2. 启动
public class ThreadDemo {
public static void main(String[] args) {
MyThread t = new MyThread(); // 新建线程对象
t.start(); // 启动线程 → JVM 调用 run()
for (int i = 0; i < 60; i++) {
System.out.println("main " + i);
}
}
}
| 调用 | 效果 |
|---|---|
t.start() | ① 向 JVM 注册新线程 ② 分配栈内存 ③ 异步调用 run() |
t.run() | 普通方法调用,**当前线程**同步执行,**不创建新线程** |