问题 1:什么是进程?什么是线程?二者的核心区别是什么?
问题 2:Java 中创建线程的三种方式是什么?分别举例说明。
问题 3:start () 方法和 run () 方法的区别是什么?
问题 4:Java 线程的生命周期有哪些状态?状态之间如何转换?
问题 5:sleep () 和 wait () 的核心区别是什么?
问题 6:notify () 和 notifyAll () 的区别是什么?
问题 7:什么是线程中断?如何正确中断线程?
问题 8:什么是线程池?为什么要使用线程池?
问题 9:Java 线程池的核心参数有哪些?各参数的作用是什么?
问题 10:Java 线程池的拒绝策略有哪些?分别适用于什么场景?
问题 11:Java 线程池的执行流程是什么?
问题 12:Java 中常见的线程池类型有哪些(Executors 提供)?各自的适用场景?
问题 13:什么是线程池的核心线程数和最大线程数?如何合理设置?
问题 14:线程池的线程复用原理是什么?
问题 15:线程池的核心线程数为什么默认不销毁?如何让核心线程数超时销毁?
问题 16:什么是线程的上下文切换?如何减少上下文切换?
问题 17:什么是守护线程(Daemon)?与用户线程的区别是什么?
线程安全相关问题
问题 1:synchronized 关键字的作用是什么?有哪些使用方式?
问题 2:volatile 关键字的作用是什么?它能保证原子性吗?
问题 3:什么是线程安全?Java 中如何保证线程安全?
问题 4:synchronized 的底层实现原理(JDK 6 前后的优化)?
问题 5:ReentrantLock 的核心特性是什么?与 synchronized 相比有哪些优势?
问题 6:什么是乐观锁和悲观锁?Java 中分别有哪些实现?
问题 7:什么是自旋锁?JVM 中自旋锁的优化(自适应自旋)?
问题 8:CAS 的底层实现原理?CAS 有哪些缺陷?
问题 9:什么是 ABA 问题?如何解决?
问题 10:ThreadLocal 的作用是什么?底层原理是什么?
问题 11:ThreadLocal 为什么会发生内存泄漏?如何避免?
问题 12:什么是死锁?死锁产生的四个必要条件是什么?
问题 13:如何避免和解决死锁?
问题 14:什么是线程的可见性?JVM 如何保证可见性(内存屏障)?
问题 15:什么是指令重排序?JVM 如何禁止指令重排序?
问题 16:高并发场景下,如何设计线程池参数?(结合业务场景)
问题 17:分布式场景下,如何实现分布式锁?(对比不同方案的优缺点)
锁相关-与前面会重复
问题 1:什么是锁?Java 中锁的核心作用是什么?
问题 2:Java 中悲观锁和乐观锁的区别?分别有哪些实现?
问题 3:什么是可重入锁?synchronized 和 ReentrantLock 是可重入锁吗?
问题 4:什么是公平锁和非公平锁?ReentrantLock 如何设置?
问题 5:synchronized 的底层实现原理?JDK 6 对 synchronized 做了哪些优化?
问题 6:ReentrantLock 的底层实现原理?与 synchronized 的区别?
问题 7:什么是读写锁(ReentrantReadWriteLock)?适用场景是什么?
问题 8:什么是自旋锁?自旋锁的优缺点是什么?
问题 9:什么是锁消除?什么是锁粗化?分别举例说明。
问题 10:AQS 的核心原理是什么?AQS 如何实现独占锁和共享锁?
问题 11:什么是 StampedLock?它与 ReentrantReadWriteLock 的区别是什么?
问题 12:如何避免锁竞争?高并发下锁的优化策略有哪些?
问题 13:什么是分布式锁?常见的分布式锁实现方案有哪些?各自的优缺点?
问题 14:Redis 分布式锁如何实现?如何解决锁超时和主从切换的问题?