java——volatile的可见性不能保证线程安全

volatile:

  1.保证变量对所有线程的可见性(但是由于java里面的运算并非原子操作,导致volatile变量的运算在并发下一样是不安全的)

用代码试过,确实是这样的,原因:有可能同时多个thread副本数据同时覆盖原始数据,这时就没有某个线程通知其他线程副本数据过期,导致数据出现问题。

  2.禁止指令重排

 

这东西会比synchronized快一些

 

read load use assign store

 

posted @ 2019-03-08 16:37  高圈圈  阅读(902)  评论(0编辑  收藏  举报