虚拟线程是Java Loom项目的核心成果,Java 21将其从预览转为正式特性。
传统线程
OS级线程,创建成本高,数量有限(几千个就可能触顶)
虚拟线程
JVM管理、轻量级、可创建成千上万甚至百万个
- 创建成本极低:一个虚拟线程的内存占用、调度成本都远低于操作系统线程
- 阻塞不再昂贵:像sleep()、IO阻塞这样的操作不再占用真实操作系统线程
- 编写同步代码即可实现高并发:不再需要Reactor/CompletableFuture来对抗阻塞
传统线程与虚拟线程对比
虚拟线程工作原理