Skip to content
On this page

并发

线程与 Executor

直接 new Thread() 不利于资源管理。使用 ExecutorService(如 Executors 工厂或更推荐显式 ThreadPoolExecutor 配置)提交 Runnable/Callable

关闭:shutdown() / shutdownNow(),并处理未完成任务与中断。

synchronizedvolatile

synchronized 保证互斥与可见性(在 JMM 规则下)。volatile 保证可见性与有序性约束,提供复合操作的原子性(如 i++ 仍需原子类或锁)。

java.util.concurrent

CountDownLatchCyclicBarrierSemaphorePhaser 等协调原语;ConcurrentHashMapBlockingQueue 用于生产者消费者。

java.util.concurrent.atomic

AtomicInteger 等提供无锁 CAS 更新;ABA 问题在高阶场景可用 AtomicStampedReference 等。

虚拟线程(21+)

轻量级线程,阻塞 I/O 友好;所有负载都更快,CPU 密集仍用平台线程池与并行流需谨慎测量。与 synchronized 在 JDK 21 初期的 pinning 问题需关注发行说明与后续版本修复。

调试

-ea 断言;生产诊断用线程 dump、jcmd、异步分析器。数据竞争优先通过设计与 java.util.concurrent 原语避免。

技术文库