
线程的基础知识
面试题1:线程与进程的区别?

面试题2:并行和并发有什么区别?

面试题3:创建线程的方式有哪些?



面试题 4:runnable 和 callable 有什么区别?

面试题5:线程的 run()和 start()有什么区别?


面试题6:线程包括哪些状态,状态之间是如何变化的?


面试题7:新建 T1、T2、T3 三个线程,如何保证它们按顺序执行?

面试题8:notify()和 notifyAll()有什么区别?

面试题9:在java中wait和sleep方法的不同?

面试题10:如何停止一个正在运行的线程?

线程中并发安全
面试题1:synchronized关键字的底层原理


面试题2:Monitor实现的锁属于重量级锁,你了解过锁升级吗?







面试题3:你谈谈 JMM(Java内存模型)


面试题4:CAS你知道吗?


面试题5:请谈谈你对 volatile 的理解?




面试题6:什么是AQS?


面试题7:ReentrantLock的实现原理


面试题8:synchronized和Lock有什么区别 ? 
面试题9:死锁产生的条件是什么?


面试题10:聊一下ConcurrentHashMap



面试题11:导致并发程序出现问题的根本原因是什么?(Java程序中怎么保证多线程的执行安全)

线程池
面试题1:说一下线程池的核心参数(线程池的执行原理知道嘛)

面试题2:线程池中有哪些常见的阻塞队列

面试题3:如何确定核心线程数?

面试题4:线程池的种类有哪些?

面试题5:为什么不建议用Executors创建线程池

线程池使用场景
面试题1:如何控制某个方法允许并发访问线程的数量

面试题2:谈谈你对ThreadLocal的理解

