总体概览
线程的基础知识
线程和进程的区别?
并行和并发有什么区别?
创建线程的方式有哪些?
runable和callable有什么区别
run()和start()有什么区别
线程包括了那些状态?这些状态之间如何变化
新建T1,T2,T3三个线程,如何保证他们按序执行
notify()和notifyAll()有什么区别
wait()方法和sleep()方法有什么不同
如何停止一个正在运行的线程
线程中并发安全
synchronized关键字的底层原理
monitor属于重量级锁,你了解过锁升级吗?
你谈谈JMM(Java内存模型)
CAS你知道吗
谈谈你对volatile的理解
什么是AQS?
ReentrantLock的实现原理
synchronized与lock有什么区别
死锁产生的条件按是什么?
聊一下ConcurrentHashMap
导致并发程序出现问题的根本原因是什么?(Java程序如何保证多线程的执行安全)
线程池
说一下线程池的核心参数(线程池的核心原理知道吗)
线程中有哪些常见阻塞队列?
如何确定核心线程数
线程池的种类有哪些?
为什么不建议用Executors创建线程
使用场景
线程池的使用场景(CountDownLatch,Future)(你们项目哪里用到了多线程)
如何控制某个方法允许并发访问线程的数量
谈谈你对ThreadLocal的理解