赞
踩
现有的并发模型最终任务的执行是落到线程上面的。这个线程的实现为操作系统 线程的包装器,操作系统线程的成本很高,因此我们不能创建太多线程。
在JAVA21中,传统线程称之为平台线程,在平台线程之下,派生出虚拟线程,而虚拟线程是非常轻量级的,突出一个用完就丢
虚拟线程的调度由平台线程控制,切换虚拟线程上下文;在操作系统层面,可能还是一个同一个线程里面。
因此,虚拟线程不该被池化,而是来个任务就直接放到虚拟线程中运行
Executors.newVirtualThreadPerTaskExecutor().execute(() -> {
//TODO
});
Thread.ofVirtual().start(() -> {
//TODO
});
Thread.startVirtualThread(() -> {
//TODO
});
虚拟线程在Java的发展历程中绝对算是重量级更新,特别是对服务端程序更加友好,相信在不久的将来会有更对的组件向虚拟线程。
JDK21其他更新点参考
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。