synchronize和valotile区别

valotile 修饰类变量、类实例时,在并发中,会及时直接写在主存中,不会拷贝副本到工作内存;禁止对有关联的语句进行重排,即有序----有可见性、有序性、无原子性;(未加这个修饰的变量修改时,会把工作区修改了,但同步至主内存不一定是实时;如果有valotile在工作区修改完,立刻同步至主内存)

synchronized 修饰类变量、类实例时,在并发中,先清空工作内存,从主存拷贝变量副本到工作内存,再从工作内存写回到主存;块内无序,块外有序-----有可见性、无有序性、原子性;

valotile不安全的原因--不保证原子性:

synchronize和valotile使用上的区别

发布了39 篇原创文章 · 获赞 0 · 访问量 788

猜你喜欢

转载自blog.csdn.net/qq_15458763/article/details/103645295