当前位置:Java -> 虚拟线程的复活:揭开它们从JDK 1.1到JDK 21的演变之旅
几个月前,我写了一篇文章,讨论了虚拟线程在JDK 21中的首次亮相及其在实现请求级别线程模式中的作用。您可以点击这里查看完整文章。
在与读者的互动中,我发现了一个有趣的历史细节:虚拟线程在早期的JDK 1中就曾经引入过,后来又被逐渐淘汰。
坦率地说,对我来说这是个新鲜事,因为我的Java之旅始于2000年代初。我的好奇心被激起,我着手寻找初次引入和后来淘汰虚拟线程的细节,以解释它们是如何在JDK 21中有了显著复兴。
在本文中,我将分享我在探索过程中发现的见解。
绿色线程,也被称为虚拟线程或用户级线程,最初被用于早期的Java版本,包括JDK 1.0,用于并发处理。这些线程由用户级库或运行时系统管理,而不是基础操作系统。它们旨在提供一种轻量级的并发处理方式,而不依赖于操作系统的本机线程。
然而,有几个原因导致绿色线程在JDK 1.0后被淘汰,转而采用本机线程:
由于这些限制,Java转向使用本机线程以提高性能、可伸缩性和可移植性。这一改变使得Java对并行编程和并行编程提供更好的支持,使得Java更适用于更广泛的应用程序和系统。
JDK 21中,Java引入了一个基于虚拟线程的新并发模型,可以看作是绿色线程的重新想象版本。这些虚拟线程旨在解决绿色线程在早期Java版本中所面临的一些挑战。它们虽然与绿色线程相似,但设计时考虑了现代解决方案。以下是它们如何解决所提到的挑战:
虽然虚拟线程从绿色线程中汲取灵感,但它们并不是对旧的绿色线程模型的完全逆转。相反,它们结合了绿色线程和本机线程的优点,提供了更多样化和高效的并发模型。这种方法允许Java更好地适应当今的硬件,并解决了语言早期版本中绿色线程所面临的挑战。
推荐阅读: 73.如何使用AQS自定义同步器?
本文链接: 虚拟线程的复活:揭开它们从JDK 1.1到JDK 21的演变之旅