Skip to content

请用 30 秒说明 Java 并发程序的核心设计思路

题型:30 秒基础题 · 先减少共享,再说明同步和线程资源治理。

30 秒回答

Java 并发设计的核心不是先加锁,而是先划清任务和状态边界,尽量使用不可变对象、线程封闭或消息传递减少共享。确实需要共享可变状态时,再根据原子性、可见性和有序性要求选择 synchronizedLock、原子类或并发容器。执行层还要用有界线程池、超时、取消和背压控制资源,并通过吞吐、尾延迟、队列长度、拒绝数和锁竞争判断系统是否健康。

面试官关注点

  • 是否先识别共享状态和不变量,而不是机械背锁 API。
  • 是否区分线程安全、任务调度和资源隔离三个层面。
  • 是否知道并发度越高不代表吞吐一定越高。

易错点

  • volatile 只能提供特定的可见性和有序性语义,不能让复合操作自动具备原子性。
  • 使用线程安全容器不代表多个容器操作组合后仍然线程安全。

知识关系

从当前问题继续深入,或者回到提出这个问题的知识入口。