IntelliJ调试器中虚拟线程名称显示异常问题
IntelliJ调试器中虚拟线程名称显示异常问题
在IntelliJ中使用虚拟线程(Virtual Thread)时,即使显式设置线程名称,调试器仍无法正确显示,而是显示类似pool-1-thread-1的默认名称。
示例代码
final ThreadFactory factory = Thread.ofVirtual().name("named-thread-", 0).factory(); final ExecutorService executor = Executors.newThreadPerTaskExecutor(factory); executor.execute(() -> Thread.currentThread().getName())
预期行为
线程名称应在控制台输出和IntelliJ调试器中均显示为named-thread-0。
实际行为
控制台输出中线程名称显示正确,为named-thread-0,但在IntelliJ调试器中显示为pool-3-thread-1。
(IntelliJ调试器示例截图:调试器面板中显示的线程名称为pool-3-thread-1)
说明
若将代码改为使用普通线程而非虚拟线程,调试器中的线程名称显示正常。
补充信息
- Intellij 2025.1 EAP
- GraalVM 23.0.1(使用OpenJDK时同样存在该问题)
- Windows 11
按照@Basil Bourque提供的示例测试后,仍存在相同问题:
控制台显示
(控制台截图:输出的线程名称为named-thread-0)
调试器显示
(调试器截图:线程列表中显示类似pool-xxx-thread-x的默认名称)
(调试器详情截图:线程详情面板中仍显示默认池线程名称,未显示自定义的虚拟线程名称)
内容的提问来源于stack exchange,提问作者Kobra
相关产品推荐
相关产品推荐

