volatile

来源:互联网 发布:头脑风暴软件 编辑:程序博客网 时间:2024/06/05 02:06

volatile让变量每次在使用的时候,都从主存中取。而不是从各个线程的“工作内存”。

volatile具有synchronized关键字的“可见性”,但是没有synchronized关键字的“并发正确性”,也就是说不保证线程执行的有序性。

也就是说,volatile变量对于每次使用,线程都能得到当前volatile变量的最新值。但是volatile变量并不保证并发的正确性。

JVM (JAVA 虚拟机)把内存分为两层,一层为大的主存,另外一个是工作内存(

于每个线程).正常情况下,线程在用到某个变量的值时,都是先取到工作内存中进行处理,然后再写回主存,这样就会带来不同线程变量值不同步的问题,所以,使用volatile去定义某个变量,可以限制该变量只能直接在主存中操作,轻量级的同步.


原创粉丝点击