Bootstrap

Go有协程,Java有虚拟线程,聊一聊Java Virtual Threads

文章首发地址

Virtual Threads是什么

Java 19 中引入了 Virtual Threads,也称为 Virtualized Threads,是 Project Loom 的核心特性之一。Virtual Threads 是一种全新的轻量级线程实现方式,它可以在 Java 应用程序中实现高效的协程编程模型。

在传统的 Java 线程模型中,每个线程都会对应一个操作系统线程,这样会带来很大的开销和限制。而 Virtual Threads 的实现方式是基于 Continuation(续体)的机制,可以在一个线程上实现多个虚拟线程,从而避免了创建和销毁线程的开销,并且能够更好地利用计算资源。

Continuation 是一种在代码执行过程中保存执行状态的机制,可以暂停和恢复线程的执行状态。在 Virtual Threads 中,当虚拟线程遇到 I/O 操作或阻塞调用时,它会将执行权交给其他虚拟线程,从而避免了线程等待和上下文切换的开销。当 I/O 操作完成时,虚拟线程会被唤醒并继续执行。这种机制可以有效地减少线程的数量和上下文切换的开销,从而提高程序的性能和吞吐量。

在 Java 1

;