彻底理解Synchronized

循序渐进

  1. 了解java内存模型
  2. 一般用法
  3. 实现原理
    锁的位置
    执行同步代码块后首先要先执行monitorenter指令,退出的时候monitorexit指令。通过分析之后可以看出,使用Synchronized进行同步,其关键就是必须要对对象的监视器monitor进行获取,当线程获取monitor后才能继续往下执行,否则就只能等待。而这个获取的过程是互斥的,即同一时刻只有一个线程能够获取到monitor
  4. synchronized优化

几个问题

1.Synchronized使用位置有哪些场景?
2.synchronized实现原理是什么?
3.对象锁(monitor)的机制是怎样的?锁的重入性是什么意思?
4.乐观锁、悲观锁 & CAS和CAS的问题,阻塞同步、非阻塞同步

链接:
https://www.jianshu.com/p/d53bf830fa09
https://zhuanlan.zhihu.com/p/75880892

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容