Prompts-MCP 686 skills · ai / design / design-pattern / framework / fundamentals / habit / lang / tech-selection /mcp/sse
fundamentals fundamentals/virtual-threads/index.md medium

fundamentals-virtual-threads-index

JDK21 虚拟线程(Project Loom)三件事 — 何时该用/不用、pinning 陷阱、与线程池的关系。Use when 评估上虚拟线程 / 改 synchronized 防钉住 / 用 newVirtualThreadPerTaskExecutor 时。

子项索引

子项 一句话
virtual-threads-when-to-use skill 虚拟线程何时用何时不用 — IO 密集(调 DB/RPC/外部 API)一请求一虚拟线程收益大,CPU 密集计算无收益甚至更差
virtual-threads-pinning-pitfall skill 虚拟线程 pinning 陷阱 — synchronized 块内执行阻塞调用会把虚拟线程钉死在载体线程上无法卸载,改用 ReentrantLock
virtual-threads-vs-thread-pool skill 虚拟线程与线程池的关系 — 创建极廉价不需池化,用 newVirtualThreadPerTaskExecutor 而非固定大小池;海量虚拟线程下慎用 ThreadLocal

Virtual Threads · 子项索引

内功定位:原理 → 实践决策。虚拟线程(Project Loom,JDK21 正式)是 2025-26 高频考点,但用错(CPU 密集、synchronized 钉住、误池化)反而有害。每条回答一个独立决策。

按你正在做的事下钻:

你在做什么 进哪个
评估某段逻辑/某个服务该不该上虚拟线程,IO 密集还是 CPU 密集 when-to-use
担心 synchronized 块里阻塞把载体线程钉住(pinning),想改 ReentrantLock pinning-pitfall
不知道虚拟线程要不要池化、怎么建 Executor、ThreadLocal 还能不能用 vs-thread-pool