1. JDK1.6 开始对 synchronized 做了哪些优化? 使用了锁升级、锁粗化、锁消除等方式来优化性能。
2. Synchronized 和 ReentrantLock 有何异同?
3. volatile 有什么作用?
4. final 关键字有什么特性?
5. 说说你对 as if serial 和 happen before 的理解。
6. ReentrantLock 的加锁和解锁过程是怎样的? 加锁过程:
释放锁过程:
7. ReentrantReadWriteLock 怎么用一个 state 来表示读锁和写锁的状态的?
8. 并发的时候 List 不安全,有哪些解决办法?
9. 你还用过哪些并发工具类?
10. 有没有了解过 ThreadLocal?