代码对比
✕ Java 8
Thread thread = new Thread(() -> {
System.out.println("hello");
});
thread.start();
thread.join();
✓ Java 21+
Thread.startVirtualThread(() -> {
IO.println("hello");
}).join();
发现此代码有问题? 告诉我们。
为什么现代方式更好
轻量级
虚拟线程使用 KB 内存,平台线程使用 MB。
可扩展
每个请求运行一个线程,无需异步代码。
无需重构
与现有阻塞 API(JDBC、文件 I/O)配合使用。
旧方式
平台线程
现代方式
虚拟线程
自 JDK
21
难度
入门
JDK 支持
虚拟线程
可用
自 JDK 21 LTS 起广泛可用(2023 年 9 月)
工作原理
虚拟线程是由 JVM 而非操作系统管理的轻量级线程。它们挂起时不会阻塞平台线程,使每个请求一个线程的风格变得可行。
相关文档