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 题。
和评分标准对照,你能独立回答到哪一步?
自评会安排下一次复习,不保存你的口述内容。
这道题,你掌握得怎么样?
掌握程度由你主动标记,阅读和收藏不会自动改变状态。