Java 后端面试题库 / 全部题解免费阅读理解原理,有条理地回答

Java 常用并发工具类有哪些?

先说出你的答案

定义边界、关键机制、一个反例;P8题再补容量、失败与验证。

查看完整题解

参考回答

直接回答

可以按用途记:ExecutorService、ThreadPoolExecutor 管理任务执行;Future、CompletableFuture 表达结果与完成组合;CountDownLatch、CyclicBarrier、Phaser 协调阶段;Semaphore 限制许可;Lock、原子类及并发集合帮助控制共享访问。不是类名越多,答案就越完整。

讲清原理

选择工具先看问题:等几个任务都结束,可考虑 CountDownLatch;一组参与者反复会合,可考虑 CyclicBarrier;分阶段且参与者动态变化,可考虑 Phaser;限制同时进入某段操作的数量,可考虑 Semaphore。

并发集合只保证其文档声明的操作语义。把多个线程安全操作拼起来,仍可能产生竞态。线程池还必须考虑队列容量、拒绝策略、超时和关闭,不能只写一个无限提交任务的入口。

例子与易错点

var latch = new java.util.concurrent.CountDownLatch(1);
latch.countDown();
latch.await(); // 计数已到 0,不再等待
System.out.println(latch.getCount()); // 0

CountDownLatch 不能重置计数。可重复使用的屏障与一次性倒计数不是同一个工具;CompletableFuture 的执行线程也应按所用方法和执行器配置明确判断。

相关题:第 54 题。

这道题,你掌握得怎么样?

掌握程度由你主动标记,阅读和收藏不会自动改变状态。