Java并发编程之volatile变量介绍

 更新时间:2015年04月13日 10:47:22   投稿:junjie  
这篇文章主要介绍了Java并发编程之volatile变量介绍,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.在访问变量是不需要加锁

相关文章

  • Spring Cloud 优雅下线以及灰度发布实现

    Spring Cloud 优雅下线以及灰度发布实现

    这篇文章主要介绍了Spring Cloud 优雅下线以及灰度发布实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11
  • springboot3.x版本集成log4j遇到Logging system failed to initialize using configuration from‘classpath:log4问题

    springboot3.x版本集成log4j遇到Logging system failed to initial

    使用Springboot 3.x集成Log4j时可能会遇到版本冲突的问题,这通常可以通过检查Maven依赖树来识别,一旦发现冲突,将Log4j的版本统一更新到最新的兼容版本,例如2.21.1,即可解决问题,此方法有效解决了日志打印错误,是处理类似问题的一个实用参考
    2024-09-09
  • springBoot基于webSocket实现扫码登录

    springBoot基于webSocket实现扫码登录

    最近做了个新项目,涉及到扫码登录。之前项目使用的是 ajax轮询的方式。感觉太low了。所以这次用webSocket的方式进行实现,感兴趣的可以了解一下
    2021-06-06
  • 关于springboot2.4跨域配置问题

    关于springboot2.4跨域配置问题

    这篇文章主要介绍了springboot2.4跨域配置的方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-07-07
  • Java SSM框架讲解

    Java SSM框架讲解

    这篇文章主要介绍了什么是SSM框架,SSM框架是spring、spring MVC 、和mybatis框架的整合,是标准的MVC模式。想进一步了解的同学可以详细参考本文
    2023-03-03
  • Spring Data Jpa 复杂查询方式总结(多表关联及自定义分页)

    Spring Data Jpa 复杂查询方式总结(多表关联及自定义分页)

    这篇文章主要介绍了Spring Data Jpa 复杂查询方式总结(多表关联及自定义分页),具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-02-02
  • IDEA 项目创建Mapper的xml文件的方法

    IDEA 项目创建Mapper的xml文件的方法

    这篇文章主要介绍了IDEA 项目创建Mapper的xml文件的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-11-11
  • 通过面试题解析 Java 类加载机制

    通过面试题解析 Java 类加载机制

    类加载是 Java 语言的一个创新,也是 Java 语言流行的重要原因之一。它使得 Java 类可以被动态加载到 Java 虚拟机中并执行。下面小编和大家来一起学习一下吧
    2019-05-05
  • Java 方法签名详解及实例代码

    Java 方法签名详解及实例代码

    这篇文章主要介绍了 Java 方法签名详解及实例代码的相关资料,需要的朋友可以参考下
    2016-10-10
  • MyBatis缓存功能原理及实例解析

    MyBatis缓存功能原理及实例解析

    这篇文章主要介绍了MyBatis缓存功能原理及实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-03-03

最新评论