1. https://blog.csdn.net/jjj19891128/article/details/24393661 多线程经典面试题
2. https://blog.csdn.net/ll666634/article/details/78615505 Java多线程常用面试题(含答案,精心总结整理)
3. https://blog.csdn.net/u012459345/article/details/51179578 多线程的40个面试题总结(上)
4. https://juejin.im/post/5b1480646fb9a01e6b2c0b82 总结Java开发面试常问的问题,持续更新中~
5. https://www.cnblogs.com/zjdxr-up/p/6638131.html 线程面试top50题
6. http://www.cnblogs.com/xrq730/p/5060921.html?utm_source=tuicool&utm_medium=referral 40个Java多线程问题总结
7. https://blog.csdn.net/liuhouli923914981/article/details/79769666 Java线程相关的热门面试题
8. https://blog.csdn.net/qq3401247010/article/details/78286561 Java并发编程二三事
https://blog.csdn.net/u010723709/article/details/50341631
https://blog.csdn.net/zhoufanyang_china/article/details/54601311
http://www.cnblogs.com/paddix/p/5405678.html
线程优先级
现代操作系统采用的是时间分片的方式调度线程,设置线程优先级,使优先级高的线程获得时间分片的次数比优先级低的线程多。
早期synchronized 为什么效率低效
synchronized是通过对象内部的监视器锁(monitor)实现的,但是监视器锁本质上依赖于底层操作系统的互斥锁(Mutex_Lock)并且java线程是映射到操作系统线程的,所以java线程的上下文切换需要从用户态进入内核态操作,浪费系统资源。
因此,在jdk1.6后对synchronized做了很多优化,为了减少获得锁和释放锁带来的性能消耗,引入了 轻量级锁、偏向锁等。