java高级并发编程实战
参见:https://nyimac.gitee.io/2020/06/08/%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8B/#%E4%B8%80%E3%80%81%E5%9F%BA%E6%9C%AC%E6%A6%82%E5%BF%B5
https://blog.csdn.net/Angry_Mills/article/details/106724304 有具体的案例实现了synchronize 锁升级的流程
https://blog.csdn.net/m0_37989980/article/details/111460733 较为详细的黑马培训机构的教程笔记
https://blog.csdn.net/weixin_50280576/article/details/113727645 上面的笔记的补充
https://www.tqwba.com/x_d/jishu/261048.html 详细的介绍了monitor对象
https://www.cnblogs.com/zzq6032010/p/11967177.html
lock record 地址是包含线程id地址
锁:偏向锁-》轻量级锁-》重量级锁
synronized可以解决有序性指令重排,可见性,原子性(满足这三项的条件是变量都交由syncronized管理),volitate是无法解决原子性的问题的,可以解决前面两种问题
hashmap在jdk1.7中实现