Java volatile详解
2014-08-28 16:58
141 查看
在Java中,为了保证多线程读写数据时保证数据的一致性,可以采用两种方式:
用一句话概括volatile,它能够使变量在值发生改变时能尽快地让其他线程知道.
而在这个过程,变量的新值对其他线程是不可见的.而volatile的作用就是使它修饰的变量的读写操作都必须在内存中进行!
volatile仅能使用在变量级别,synchronized则可以使用在变量,方法.
volatile仅能实现变量的修改可见性,但不具备原子特性,而synchronized则可以保证变量的修改可见性和原子性.
volatile不会造成线程的阻塞,而synchronized可能会造成线程的阻塞.
该文章转载自http://www.pigg.co/java-volatile.html
同步
如用synchronized关键字,或者使用锁对象.volatile
使用volatile关键字用一句话概括volatile,它能够使变量在值发生改变时能尽快地让其他线程知道.
volatile详解
首先我们要先意识到有这样的现象,编译器为了加快程序运行的速度,对一些变量的写操作会先在寄存器或者是CPU缓存上进行,最后才写入内存.而在这个过程,变量的新值对其他线程是不可见的.而volatile的作用就是使它修饰的变量的读写操作都必须在内存中进行!
volatile与synchronized
volatile本质是在告诉jvm当前变量在寄存器中的值是不确定的,需要从主存中读取,synchronized则是锁定当前变量,只有当前线程可以访问该变量,其他线程被阻塞住.volatile仅能使用在变量级别,synchronized则可以使用在变量,方法.
volatile仅能实现变量的修改可见性,但不具备原子特性,而synchronized则可以保证变量的修改可见性和原子性.
volatile不会造成线程的阻塞,而synchronized可能会造成线程的阻塞.
该文章转载自http://www.pigg.co/java-volatile.html
相关文章推荐
- 详解java中的volatile关键字
- java中 volatile 的作用详解
- Java中volatile关键字的作用与用法详解
- 详解java中volatile关键字
- java的内存模型与volatile关键字详解
- Java中Volatile关键字详解
- Java volatile详解
- Java并发——线程同步Volatile与Synchronized详解
- Java并发——线程同步volatile与synchronized详解
- java-volatile详解
- Java中Volatile关键字详解
- 从头认识java-17.4 详解同步(4)-同步阻塞、synchronized和volatile
- java volatile详解
- java中volatile和transient关键字详解附代码示例
- java并发机制之volatile详解
- 【转】Java中的Volatile关键字详解
- 【java】java内存模型(2)--volatile内存语义详解
- java volatile详解(转)
- java中volatile关键字的详解
- Java中Volatile关键字详解