扫码阅读
手机扫码阅读
Java 虚拟线程
129 2024-08-23
我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。
查看原文:Java 虚拟线程
文章来源:
DevXTalk
扫码关注公众号
Java 虚拟线程摘要
概述
Java虚拟线程是解决传统线程资源消耗大的问题的轻量级实现。虚拟线程在JVM层面上管理,使用较少的系统资源,允许在一个或多个底层操作系统线程上运行。JEP 444将虚拟线程的功能纳入JDK 21,基于先前版本的反馈进行了最终定稿。
平台线程与虚拟线程
- 平台线程是对操作系统线程的包装,具有较大的线程堆栈和资源需求,适用于运行所有类型的任务。
- 虚拟线程作为轻量级线程,不绑定特定操作系统线程,可以在操作系统线程上运行Java代码,适用于执行阻塞I/O操作的任务。
使用虚拟线程的理由
虚拟线程在高并发高吞吐量的应用程序中提供规模扩展,适合处理许多执行阻塞I/O操作的并发任务,而不是提高速度。
使用虚拟线程
Java对Thread类进行了改造,提供了静态工厂方法创建平台线程和虚拟线程。线程池支持虚拟线程,通过Executors.newVirtualThreadPerTaskExecutor()创建。
平台线程与虚拟线程的性能和资源占用对比
性能测试显示虚拟线程在执行大量短任务时性能显著提升,并且资源占用测试表明在创建大量线程时虚拟线程不会占据大量内存空间。
虚拟线程调度器
JDK的虚拟线程调度器类似于ForkJoinPool,运行在FIFO模式下,可以调整并行数量。JVM通过mount和unmount操作在平台线程和虚拟线程之间进行调度。
虚拟线程适用场景
虚拟线程适用于处理大量短时计算任务和IO阻塞等待处理的场景,但对于运算密集型任务,由于切换和挂起开销,不建议使用虚拟线程。
想要了解更多内容?
查看原文:Java 虚拟线程
文章来源:
DevXTalk
扫码关注公众号
DevXTalk的其他文章
另一个Redis可视化工具
另一个Redis可视化工具给大家介绍另一个 Redis 管理客户端。
Mermaid AI 画流程图
Mermaid AI 画流程图Mermaid 是一个强大的开源工具,用于在纯文本中创建图表和流程图。
都 2024 年了还只会 MySQL 么?OceanBase 了解一下
都 2024 年了还只会 MySQL 么?
自动驾驶:从辅助到完全
自动驾驶:从辅助到完全❝随着科技的飞速发展,自动驾驶技术已经成为现代交通领域最引人注目的创新之一。它涉及到众
Spring Security的核心脉络
Spring Security的核心脉络SecurityBuilderHttpSecurityWebSecu
加入社区微信群
与行业大咖零距离交流学习
软件研发质量管理体系建设
白皮书上线