synchronized 演变历程
时间: 2023-07-28 16:08:55 浏览: 47
引用\[1\]:在Java 1.6中引入了偏向锁和轻量级锁作为对重量级锁的改进。然而,由于偏向锁引入了复杂的同步代码,包括在安全点执行等操作,对代码的理解和同步系统的重构都带来了困难。因此,在Java 15中废弃了偏向锁。\[1\]引用\[2\]:轻量级解锁过程是通过CAS操作将复制过来的displaced mark word对象替换为当前的mark word,如果替换成功,则整个同步过程完成;如果替换失败,说明有其他线程尝试获取锁,就需要在释放锁的同时唤醒被挂起的线程。\[2\]根据这些引用内容,synchronized的演变历程可以总结为:在Java 1.6中引入了偏向锁和轻量级锁作为对重量级锁的改进,但由于复杂性和对代码理解的障碍,偏向锁在Java 15中被废弃。轻量级解锁过程通过CAS操作实现,如果替换成功则完成同步过程,如果替换失败则需要唤醒被挂起的线程。
#### 引用[.reference_title]
- *1* *3* [Java Synchronized 偏向锁/轻量级锁/重量级锁的演变过程](https://blog.csdn.net/wekajava/article/details/120285169)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item]
- *2* [Synchronized的前世今生](https://blog.csdn.net/weixin_42211693/article/details/120180268)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]