谈到 volatile、static 就必须说多线程。

1、一个线程在开始执行的时候,会开启一片自己的工作内存(自己线程私有),同时将主内存中的数据复制到自己 的工作内存,从此读写数据都是自己的工作内存的数据,(个人见解:其中写数据时会同步到主内存,读是读自己的工作内存的数据)

2、成员变量被volatile 修饰后,发生改变:每次读取被修饰的变量都是读取主内存中的变量,这样就实现了多线程下的可见性,相当于多个实例面对一个静态变量。

3、成员变量被static 修饰后,每个实例(不是每个线程,static不是面对线程而是面对实例 )都共享 一个主内存的数据。当多线情况下时,对 该成员的操作依然参照第1、 2 点。

转载于:https://www.cnblogs.com/abab/p/9553900.html

volatile、static相关推荐

  1. c语言static. volatile,嵌入式系统C语言重点语法const、volatile、static、堆栈等的意义及用法...

    原标题:嵌入式系统C语言重点语法const.volatile.static.堆栈等的意义及用法 在单片机应用中,堆栈是个特殊的存储区,主要功能是暂时存放数据和地址,通常用来保护断点和现场. 要点:堆, ...

  2. 关键字回顾(final/finally/finalize()、Synchronized、volatile、static)

    1. final, finally, finalize的区别 final 用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承. finally是异常处理语句结构的一部分,表示总是执行 ...

  3. 详解static、volatile、const

    1.背景 在查阅相关资料的时候,无意间看到一个大佬对于static关键字的讲解,如雷贯耳,写得非常容易理解,这是大佬的链接 本人在学习相关知识的时候,喜欢也习惯把从各种书籍或者是各位大佬的博客中学到的 ...

  4. Java之内存模型的基础、重排序、顺序一致性、volatile、锁、final

    为什么80%的码农都做不了架构师?>>>    深入理解Java内存模型(一)--基础 深入理解Java内存模型(二)--重排序 深入理解Java内存模型(三)--顺序一致性 深入理 ...

  5. volatile、synchronized、(原子、可见、有序)、先行发生原则

    Java代码---编译--->Java字节码---类加载器加载到JVM中--->汇编指令(在CPU上执行) Java中的并发机制依赖于JVM的实现和CPU指令 1.volatile 轻量级 ...

  6. Java 并发编程CAS、volatile、synchronized原理详解

    CAS(CompareAndSwap) 什么是CAS? 在Java中调用的是Unsafe的如下方法来CAS修改对象int属性的值(借助C来调用CPU底层指令实现的): /*** * @param o ...

  7. Java自增原子性问题(测试Volatile、AtomicInteger)

    这是美团一面面试官的一个问题,后来发现这是一道面试常见题,怪自己没有准备充分:i++;在多线程环境下是否存在问题?当时回答存在,接着问,那怎么解决?...好吧,我说加锁或者synchronized同步 ...

  8. 【腾讯阿里最全面试题】介绍下Synchronized、Volatile、CAS、AQS,以及各自的使用场景

    [腾讯阿里最全面试题]介绍下Synchronized.Volatile.CAS.AQS,以及各自的使用场景(文章较长,建议收藏观看) 相关视频讲解: 面试中出现概念最高的技术-原来就是这个锁 后台开发 ...

  9. C++ 学习笔记之(19) new、delete表达式、RTTI(运行时类型识别)、枚举、类成员指针、嵌套类、局部类、位域、volatile、extern C

    C++ 学习笔记之(19) new.delete表达式.RTTI(运行时类型识别).枚举.类成员指针.嵌套类.局部类.位域.volatile.extern C C++ 学习笔记之(19) new.de ...

最新文章

  1. python切片语法-详解Python 切片语法
  2. 单片机定时器精准定时_8051单片机(STC89C52)定时器实现10ms精准定时
  3. Spring Boot - 自动装配中的不可忽视的@Import
  4. html菜单栏点击后处于选中状态,js实现导航菜单点击切换选中时高亮状态
  5. 3分钟入门python_3分钟学完Python,直接从入门到精通「史上最强干货库」
  6. SpringBoot中使用thymeleaf时ajax请求不能回显消息
  7. DjangoAPP子路由
  8. 原码 反码 补码 详解
  9. 40元老年机摇身一变成“华为”手机:半年卖了7000多台?
  10. “大数据”有哪些具体的成功应用?
  11. 验证javascript错误使用Google Analytics(分析、统计)
  12. 好题汇总(持续更新)
  13. 微信小程序中图表可视化
  14. 毕业论文的页眉、页脚以及参考文献插入经验分享
  15. Oracle 数据库的PLSQL块,游标、函数,存储过程与触发器的使用方法与案例
  16. 《畅玩NAS》第8章 ZeroTier组建局域网
  17. [小说]魔王冢(35)天目
  18. Anbox之构建android.img(三)
  19. java基础系列(四)UTF-8和GBK编码的区别
  20. 产品宣传数据投放广告指标

热门文章

  1. 怎么把word里面虚线变成实线_弱电不会制作cad图,花3分钟看完,只要会用WORD保证你能画出来...
  2. matlab 三维图像配准,[转载]Matlab实现多种图像配准(转)
  3. 【FFMPEG源码终极解析】 avformat_open_input (一)
  4. python位置参数ppt_如何在Python中使用一个或多个相同的位置参数?
  5. sublime快捷键代码对齐_Python配置sublime运行环境
  6. matlab 万年历,matlab时钟万年历 matlab时钟万年历(附word说明文档): 程序主要 联合开发网 - pudn.com...
  7. 用vs写python和c++需要哪些工具包_从运行效率与开发效率比较Python和C++
  8. java应用部署docker_Docker部署JavaWeb项目实战
  9. 工业以太网交换机的产品性能有哪些呢?
  10. php作菜单,PHP制作下拉透明菜单