原子性
原子性是指一段代码要么全部被执行,要么全部不执行,一个原子操作能够保证多线程安全。
可见性
根据java内存模型(JMM)结构,内存分为线程私有内存(线程缓存)和主内存。对于线程私有内存的变量对其他线程是不可见的,只有将最新数据刷新到主内存才能保证数据的可见性。在java中使用valotile关键字修饰变量可以保证可见性。
优点:
*可保证轻量级的多线程安全
...
缺点:
*强制刷新内存,影像程序性能
..
有序性
乱序原因:
- java代码在编译的过程中,会对编译器会对java代码进行优化,导致编译后的代码顺序和实际编码的顺序不一致
- 生产的cup指令集,也会进行指令的重排序
...