JDK21新特性:虚拟线程

jdk21尚未正式发布,但其备受关注的亮点-虚拟线程,对于提升IO密集型程序的吞吐量效果明显。

在主流的微服务架构中,特别是BI服务,常常会调用不同服务的FeignClient用以统计数据,旧版本的jdk中,涉及上下文切换的多线程实现通常采用线程池+Future、CompletableFuture等类异步编排。

由于旧版本的jdk中,Java只是封装了操作系统底层的线程调度接口,所以异步编程往往受限于cpu调度线程数,且线程资源和cpu大量浪费于阻塞等待上。

虚拟线程为此带来了福音

平台线程:实现了Runnable接口的Thread 类的每个实例,都是平台线程,是 Java 对操作系统线程的包装

虚拟线程:一种由 JVM 管理的轻量级线程。对应实例为VirtualThread

官网介绍中,虚拟线程是由 Java 虚拟机调度,而不是操作系统。虚拟线程占用空间小,同时使用轻量级的任务队列来调度虚拟线程,避免了线程间基于内核的上下文切换带来的开销,因此可以极大量、高效地创建和使用

io密集型的程序中,虚拟线程能否完全替代平台线程?

平台线程池是否会在一定程度上成为过去式?

jdk21尚未正式发布,让我们拭目以待

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值