2025-06-23-01-synchronized

synchronized

特性

原子性,可见性,有序性

1.原子性

javap -v Class01_Sync_Test.class

2.可见性

运行在内存中的数据,运行在CPU中的数据。ABA问题

ABA问题.png

ABA问题可以使用volatile来解决

3.有序性

CPU会对指令进行重排序,例如一个对象的创建过程:

申请空间,初始化,赋值给变量。但是如果指令优化成申请空间,赋值给变量,初始化就可能导致另一个线程在使用的时候发现对象内的数据是null的。尤其是在单例模式下。

解决方法:volatile可以保存指令不被优化

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

推荐阅读更多精彩内容