欢迎访问 内存溢出 —— 独立后端与系统工程技术博客

专注于分布式系统、Linux内核、数据库存储与后端工程实践

Java 虚拟线程(Virtual Threads):Project Loom 高并发编程实践

发表于:|最后更新:|分类:系统编程|阅读:5119 次

JDK 21 正式引入的**虚拟线程(Virtual Thread)**由 JVM 调度而非操作系统内核调度,单个 JVM 可轻松创建数百万个虚拟线程。当虚拟线程阻塞在 I/O 时,JVM 自动卸载(unmount)其载体线程,极大提升阻塞式代码的并发能力。

一、虚拟线程执行器与结构化并发

java
import java.util.concurrent.Executors;

try (var executor = Executors.newVirtualThreadPerTaskExecutor()) {
    // 每个任务一个虚拟线程,阻塞 I/O 不再浪费平台线程
    for (int i = 0; i < 100_000; i++) {
        int id = i;
        executor.submit(() -> {
            String result = blockingHttpCall("https://api.example.com/item/" + id);
            System.out.println(result);
        });
    }
}
// try-with-resources 结束自动等待所有任务完成