Volatile是java提供的轻量级同步机制,比sychronized开销要小. 如果要使用 volatile 了,那肯定是在多线程并发的环境下(原子性、可见性、有序性).被volatile定义的变量,系统每次使用到它的时候都是直接从主存中读取,而不是各个线程的工作内存.
volatile适用于多个变量之间或者某个变量当前值和修改之后值之间没有约束。因此,单独使用volatile还不足以实现计数器,互斥锁等
Volatile是java提供的轻量级同步机制,比sychronized开销要小. 如果要使用 volatile 了,那肯定是在多线程并发的环境下(原子性、可见性、有序性).被volatile定义的变量,系统每次使用到它的时候都是直接从主存中读取,而不是各个线程的工作内存.
volatile适用于多个变量之间或者某个变量当前值和修改之后值之间没有约束。因此,单独使用volatile还不足以实现计数器,互斥锁等