当前位置: 首页 > 编程笔记 >

Java并发编程之volatile变量介绍

宇文学博
2023-03-14
本文向大家介绍Java并发编程之volatile变量介绍,包括了Java并发编程之volatile变量介绍的使用技巧和注意事项,需要的朋友参考一下

volatile提供了弱同步机制,用来确保将变量更新通知到其它线程。volatile变量不会被缓存在寄存器中或者对其它处理器不可见的地方,因此在读取volatile变量时总会返回最新写入的值。可以想象成如下语义,然而volatile是更轻量级的同步机制。volatile只能确保可见性,但不能保证原子性。也就是说不能在复合操作用volatile变量,比如i++。


public synchronized void setValue(int value){

this.value = value;

} public synchronized int getValue(){

return value;

}


当满足以下条件所有条件,才能使用volatile变量
1.对变量的写入操作不依赖变量的当前值,或者你能确保只有单个线程更新变量值。
2.该变量不会与其他状态变量一起纳入不变性条件
3.在访问变量是不需要加锁

 类似资料:
  • 本文向大家介绍Shell编程中的特殊变量之位置变量介绍,包括了Shell编程中的特殊变量之位置变量介绍的使用技巧和注意事项,需要的朋友参考一下 1、$0 获得当前脚本的文件名,包括路径。 2、$n 获取当前执行脚本的第n个参数,n=1..9,$0,为当前脚本名。如果n大于9,使用${10} 3、$* 获取脚本所有参数 4、$# 获得脚本所有参数的个数

  • 本文向大家介绍Shell编程中的特殊变量之进程状态变量介绍,包括了Shell编程中的特殊变量之进程状态变量介绍的使用技巧和注意事项,需要的朋友参考一下 进程状态变量 1、$$获取当前shell的进程号(PID) 2、$!执行上一个指令的PID 3、$?获取执行上一个命令的返回值(0为成功,非零为失败,这个很常用) 4、$_在此之前执行的命令或脚本的最后一个参数 $*和$@的区别 $*将所有的参数视

  • 本文向大家介绍Erlang并发编程介绍,包括了Erlang并发编程介绍的使用技巧和注意事项,需要的朋友参考一下 Erlang中的process——进程是轻量级的,并且进程间无共享。查了很多资料,似乎没人说清楚轻量级进程算是什么概念,继续查找中。。。闲话不提,进入并发编程的世界。本文算是学习笔记,也可以说是《Concurrent Programming in ERLANG》第五张的简略翻译。 1.进

  • 本文向大家介绍详解java并发编程(2) --Synchronized与Volatile区别,包括了详解java并发编程(2) --Synchronized与Volatile区别的使用技巧和注意事项,需要的朋友参考一下 1 Synchronized 在多线程并发中synchronized一直是元老级别的角色。利用synchronized来实现同步具体有一下三种表现形式: 对于普通的同步方法,锁是当

  • 本文向大家介绍Java并发编程:volatile关键字详细解析,包括了Java并发编程:volatile关键字详细解析的使用技巧和注意事项,需要的朋友参考一下 volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。 volatile关键字虽然从

  • 本文向大家介绍java并发编程之cas详解,包括了java并发编程之cas详解的使用技巧和注意事项,需要的朋友参考一下 CAS(Compare and swap)比较和替换是设计并发算法时用到的一种技术。简单来说,比较和替换是使用一个期望值和一个变量的当前值进行比较,如果当前变量的值与我们期望的值相等,就使用一个新值替换当前变量的值。这听起来可能有一点复杂但是实际上你理解之后发现很简单,接下来,让

  • 背景 在并发编程方面,JDK提供了Future, 但是使用起来不是很方便,guava提供了ListenableFuture以简化并发的编写. ListenableFuture继承自Future. 接口 interface ListenableFuture<V> extends Future<V> void addListener(Runnable listener, Executor exe

  • 本文向大家介绍Java 并发编程:volatile的使用及其原理解析,包括了Java 并发编程:volatile的使用及其原理解析的使用技巧和注意事项,需要的朋友参考一下 Java并发编程系列【未完】: •Java 并发编程:核心理论 •Java并发编程:Synchronized及其实现原理 •Java并发编程:Synchronized底层优化(轻量级锁、偏向锁) •Java 并发编程:线程间的协