一.线程状态
1.start
..
2.stop
..
3.wait
..
4.notify/notifyAll
..
5.sleep
..
6.interrupt
..
7.join
..
8.yield
..
面试题:
1.sleep是否会释放锁
2.wait是否会释放锁,wait是否必须要要在synchronized的代码块中
3.notify是否会释放锁,何时释放锁
4.wait与notifyAll搭配使用的规范是什么?
5.stop执行是否安全,要如何安全的退出线程
二、线程同步
1.synchronized
使用
方法 (静态方法、普通方法)
/..
代码块
/..
原理
/..
锁升级的过程
/..
JVM的优化
/..
2.Lock
使用
1.公平锁
/..
2.非公平锁
/..
3.读写锁
/..
实现原理
1.CAS
/..
2.CLH
/..
3.AQS
/..
面试题:
1.什么时候使用synchronized,什么时候用ReentrantLock
2.synchronized与ReentrantLock是否是可重入的,什么是可重入
3.synchronized实现原理是什么,锁升级过程是什么,jvm做了哪些优化
4.ReentrantLock实现原理是什么
5.ConcurrentHashMap是如何实现线程安全的,如何做到性能最佳,jdk1.8的前后有什么区别
三、阻塞队列