如果你正在使用 Java 21 或更高版本,你可以通过将属性spring.threads.virtual.enabled
设置为 true
来启用虚拟线程。
注意:虚拟线程的一个副作用是,这些线程是守护线程(daemon threads)。如果没有非守护线程,JVM 将退出。当你依赖例如 @Scheduled
注解的 bean 来保持应用程序运行时,这种行为可能会成为问题。如果你使用虚拟线程,调度线程就是一个虚拟线程,因此也是一个守护线程,它不会让 JVM 保持运行。这不仅影响调度,也可能影响其它技术!为了确保 JVM 在所有情况下都能保持运行,建议将属性 spring.main.keep-alive
设置为 true
。这可以确保即使所有线程都是虚拟线程,JVM 也会保持运行。