1、java中能创建volatile数组吗?

能,java中可以创建volatile数组,不过只是一个指向数组的引用,而不是整个数组,如果改变引用指向的数组,将会受到volatile的保护,但是如果多个线程同时改变数组的元素,volatile 标示符就不能起到之前的保护作用了。

2、volatile 修饰符的有过什么实践?

一种实践是用 volatile 修饰 long 和 double 变量,使其能按原子类型来读写。double 和 long 都是64位宽,因此对这两种类型的读是分为两部分的,第一次读取第一个 32 位,然后再读剩下的 32 位,这个过程不是原子的,但 Java 中 volatile 型的 long 或 double 变量的读写是原子的。volatile 修复符的另一个作用是提供内存屏障(memory barrier),例如在分布式框架中的应用。简单的说,就是当你写一个 volatile 变量之前,Java 内存模型会插入一个写屏障(write barrier),读一个 volatile 变量之前,会插入一个读屏障(read barrier)。意思就是说,在你写一个 volatile 域时,能保证任何线程都能看到你写的值,同时,在写之前,也能保证任何数值的更新对所有线程是可见的,因为内存屏障会将其他所有写的值更新到缓存。

最新文章

  1. Unity3d学习 制作地形
  2. C# WinForm修改配置文件
  3. GIT使用笔记-fatal:multiple stage entries for merged file处理办法
  4. POJ 题目3661 Running(区间DP)
  5. iOS 让启动页面延迟的方法
  6. cellular neural networks(CNN)原理以及应用
  7. LTE切换与TAU问题
  8. Android实现网络访问
  9. KMP模板,最小循环节
  10. 1.1. chromium源代码分析 - chromiumframe - 介绍
  11. Android 屏幕尺寸知识
  12. nginx使用小记
  13. JS数组学习笔记
  14. MAC OS 快捷键一览
  15. 在VS2017下配置OpenGL
  16. 自动化测试(web测试selenium框架)
  17. Hive 任务优化 tips
  18. django 模板使用
  19. EF Core 2.1变化
  20. 导入JSONPathExtractorExample.jmx文件报错,导不进去

热门文章

  1. 基于SAP Kyma的订单编排增强介绍
  2. CPU与GPU区别大揭秘
  3. 2018 Multi-University Training Contest 4 Problem B. Harvest of Apples 【莫队+排列组合+逆元预处理技巧】
  4. Selenium基础知识(详解IDE命令、css及xpath定位一)
  5. SpringMVC关于请求参数乱码问题
  6. Leetcode225 用栈实现队列
  7. 在Mac上安装office2016破解版
  8. mongo删除、添加分片
  9. position和BFC
  10. CentOS7利用本地yum源配置NBD