虚拟线程(Virtual Threads)是 JDK 提供的一种轻量级线程实现,属于 Java 并发模型的重要升级。它旨在通过简化并发编程,解决传统线程在高并发场景下的性能瓶颈和资源浪费问题。
Java23下载地址:https://www.oracle.com/cn/java/technologies/downloads/
虚拟线程通过解耦线程与操作系统资源,将线程调度交由 JVM 管理。每个虚拟线程可以由一个或多个操作系统线程动态映射和执行,从而提升资源利用率。
从 JDK 19 开始,虚拟线程作为预览特性引入,JDK 21 及之后版本正式稳定。使用虚拟线程的方式非常简单:
public class VirtualThreadExample {
public static void main(String[] args) {
// 使用虚拟线程启动任务
Thread.startVirtualThread(() -> {
System.out.println("Hello from a virtual thread!");
});
// 创建虚拟线程工厂
var threadFactory = Thread.ofVirtual().factory();
Thread virtualThread = threadFactory.newThread(() -> {
System.out.println("Running in a virtual thread!");
});
virtualThread.start();
}
}特性 | 传统线程(OS线程) | 虚拟线程(JVM线程) |
|---|---|---|
创建和销毁成本 | 高 | 低 |
并发数量限制 | 受限于硬件资源 | 数百万级 |
阻塞操作 | 阻塞操作占用系统资源 | 阻塞时不占用系统资源 |
调试和监控 | 操作系统工具支持良好 | JVM 内部管理 |
适用场景 | 中低并发场景 | 高并发、高弹性场景 |
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。