Java并发面试题100道(含答案解析)
在Java后端开发面试中,并发编程是非常重要的核心知识点。
尤其是在互联网高并发系统中,面试官经常会考察:
- 线程基础
- synchronized与锁机制
- volatile与内存模型
- CAS与原子类
- 线程池
- 并发容器
- JUC并发工具
本文整理了一份 Java并发面试题100道(含答案解析),帮助Java开发者系统复习并发编程知识。
适合人群:
- Java后端开发工程师
- 准备跳槽涨薪的程序员
- 想深入理解Java并发编程的开发者

如果你想查看更多 Java并发面试题 + AI答案解析:
👉 https://myquotego.com/html/questions?_from=csdn_158936062_1
一、Java线程基础面试题(1-20)
1、什么是线程?
线程是程序执行的最小单位,一个进程可以包含多个线程。
2、线程和进程有什么区别?
进程是资源分配的单位,线程是CPU调度的单位。
3、创建线程的几种方式?
常见方式:
- 继承 Thread 类
- 实现 Runnable 接口
- 实现 Callable 接口
- 线程池
4、Runnable 和 Callable 的区别?
区别:
- Runnable 没有返回值
- Callable 可以返回结果并抛异常
5、Thread 的 start() 和 run() 区别?
- start() 会启动新线程
- run() 只是普通方法调用
6、什么是线程生命周期?
线程生命周期包括:
- 新建
- 就绪
- 运行
- 阻塞
- 终止
7、sleep() 和 wait() 的区别?
区别:
- sleep 不释放锁
- wait 释放锁
8、什么是线程安全?
当多个线程访问共享资源时不会出现数据错误。
9、什么是线程上下文切换?
CPU在多个线程之间切换执行。
10、什么是守护线程?
为其他线程服务的线程,例如 GC线程。
更多并发面试题:
👉 https://myquotego.com/html/questions?_from=csdn_158936062_2
二、synchronized与锁机制面试题(21-40)
21、什么是 synchronized?
synchronized 是Java中的 内置锁机制。
22、synchronized 可以修饰什么?
可以修饰:
- 方法
- 代码块
23、synchronized 锁的是什么?
锁的是 对象监视器(Monitor)。
24、synchronized 是可重入锁吗?
是的,同一线程可以重复获取锁。
25、什么是锁升级?
锁升级过程:
- 偏向锁
- 轻量级锁
- 重量级锁
26、什么是死锁?
两个线程互相等待对方释放资源。
27、如何避免死锁?
常见方法:
- 固定加锁顺序
- 使用超时锁
- 减少锁嵌套
28、ReentrantLock 和 synchronized 区别?
ReentrantLock 提供:
- 可中断锁
- 公平锁
- 条件变量
29、什么是公平锁?
线程按 等待顺序获取锁。
30、什么是非公平锁?
线程可以 插队获取锁。
三、volatile与Java内存模型面试题(41-60)
41、什么是 volatile?
volatile 是一种 轻量级同步机制。
42、volatile 的作用?
主要作用:
- 保证可见性
- 禁止指令重排序
43、volatile 能保证原子性吗?
不能。
44、什么是Java内存模型(JMM)?
JMM定义了 线程之间如何共享变量。
45、什么是可见性?
一个线程修改变量后,其他线程可以立即看到。
46、什么是有序性?
程序执行顺序符合代码逻辑。
47、什么是原子性?
操作不可被中断。
48、happens-before 原则是什么?
保证操作执行顺序和可见性。
49、volatile 使用场景?
例如:
- 状态标志
- 单例模式
50、什么是双重检查锁?
用于实现 线程安全的单例模式。
四、CAS与原子类面试题(61-80)
61、什么是CAS?
CAS(Compare And Swap)是一种 无锁并发机制。
62、CAS的三个操作数?
- 内存地址
- 期望值
- 更新值
63、CAS有什么问题?
可能出现 ABA问题。
64、什么是ABA问题?
变量被改回原值但CAS无法感知。
65、如何解决ABA问题?
可以使用:
- AtomicStampedReference
66、什么是原子类?
Java提供的线程安全类,例如:
- AtomicInteger
- AtomicLong
67、AtomicInteger 原理?
基于 CAS实现。
68、LongAdder 为什么性能更高?
减少线程竞争。
69、什么是自旋锁?
线程不断尝试获取锁。
70、什么是无锁编程?
通过CAS实现并发控制。
五、线程池与并发工具面试题(81-100)
81、什么是线程池?
线程池用于 管理线程资源。
82、线程池核心参数?
主要包括:
- corePoolSize
- maximumPoolSize
- workQueue
83、线程池执行流程?
- 创建核心线程
- 加入任务队列
- 创建最大线程
84、常见线程池类型?
- FixedThreadPool
- CachedThreadPool
- SingleThreadExecutor
85、为什么不建议使用 Executors?
可能导致 OOM。
86、什么是阻塞队列?
线程安全队列。
87、常见阻塞队列?
例如:
- ArrayBlockingQueue
- LinkedBlockingQueue
88、什么是CountDownLatch?
用于 线程等待。
89、什么是CyclicBarrier?
用于 线程同步屏障。
90、什么是Semaphore?
用于 控制并发数量。
91、什么是Future?
表示 异步任务结果。
92、什么是CompletableFuture?
增强版Future。
93、ForkJoinPool是什么?
用于 分治任务并行执行。
94、什么是工作窃取算法?
空闲线程从其他线程队列获取任务。
95、什么是并发容器?
线程安全集合,例如:
- ConcurrentHashMap
96、ConcurrentHashMap 原理?
分段锁(JDK7)或CAS(JDK8)。
97、CopyOnWriteArrayList 原理?
写时复制。
98、什么是阻塞算法?
线程等待资源。
99、什么是非阻塞算法?
线程不会被阻塞。
100、Java并发编程核心思想?
通过 锁、CAS、线程池和并发工具 实现高并发系统。
更多Java面试题整理
JVM面试题
MySQL面试题
Redis面试题
Spring面试题
完整面试题库:
https://myquotego.com/html/questions?_from=csdn_158936062_3
支持:
- AI模拟面试
- AI答案解析
- 2000+面试题
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐

所有评论(0)