为什么80%的码农都做不了架构师?>>>   

Java内存模型保证non-long、non-double类型外的其他任意类型的访问都是原子性的。同时volatile long、volatile double访问也是原子性的。

参考资料:

同步和Java内存模型 (二)原子性

除了long型字段和double型字段外,java内存模型确保访问任意类型字段所对应的内存单元都是原子的。这包括引用其它对象的引用类型的字段。此外,volatile long 和volatile double也具有原子性 。(虽然java内存模型不保证non-volatile long 和 non-volatile double的原子性,当然它们在某些场合也具有原子性。)(译注:non-volatile long在64位JVM,OS,CPU下具有原子性)

当在一个表达式中使用一个non-long或者non-double型字段时,原子性可以确保你将获得这个字段的初始值或者某个线程对这个字段写入之后的值;但不会是两个或更多线程在同一时间对这个字段写入之后产生混乱的结果值(即原子性可以确保,获取到的结果值所对应的所有bit位,全部都是由单个线程写入的)。但是,如下面(译注:指可见性章节)将要看到的,原子性不能确保你获得的是任意线程写入之后的最新值。 因此,原子性保证通常对并发程序设计的影响很小。

转载于:https://my.oschina.net/u/914290/blog/803287

简单说说你对Java内存模型的原子性的了解吧?相关推荐

  1. java 线程 原子性_深入理解Java多线程与并发框架——Java内存模型与原子性、可见性、有序性...

    欢迎关注专栏<Java架构筑基>--专注于Java技术的研究与分享!Java架构筑基​zhuanlan.zhihu.comJava架构筑基--专注于Java技术的研究与分享! 后续文章将首 ...

  2. java内存模型按照线程隔离性_深入理解Java多线程与并发框(第③篇)——Java内存模型与原子性、可见性、有序性...

    一.Java内存模型 Java Memory Modle,简称 JMM,中文名称 Java内存模型,它是一个抽象的概念,用来描述或者规范访问内存变量的方式.因为各中计算机的操作系统和硬件不同,方式机制 ...

  3. 不好意思,我和 Java 内存模型杠上了!

    昨天发完 深入理解 Java 内存模型 后将文章转发到朋友圈后(附带开玩笑的说了句:拿着这篇文章.携上 JSR 133,老艿艿再也问不倒我了),刚好彤哥做了下点评(加上 CPU 缓存的架构来类比会更好 ...

  4. java虚拟机-java内存模型与线程

    java内存模型与线程 java内存模型 主内存和工作内存 内存间的交互 volatitle关键字 可见性 禁止指令重排 long和double型变量的特殊规则 原子性,可见性,有序性 先行先发生原则 ...

  5. Java内存模型JMM简单分析

    参考博文:http://blog.csdn.net/suifeng3051/article/details/52611310 http://www.cnblogs.com/nexiyi/p/java_ ...

  6. java中实现具有传递性吗_Java中volatile关键字详解,jvm内存模型,原子性、可见性、有序性...

    一.Java内存模型 想要理解volatile为什么能确保可见性,就要先理解Java中的内存模型是什么样的. Java内存模型规定了所有的变量都存储在主内存中.每条线程中还有自己的工作内存,线程的工作 ...

  7. 从底层吃透java内存模型(JMM)、volatile、CAS

    前言 随着计算机的飞速发展,cpu从单核到四核,八核.在2020年中国网民数预计将达到11亿人.这些数据都意味着,作为一名java程序员,必须要掌握多线程开发,谈及多线程,绕不开的是对JMM(Java ...

  8. 循序渐进:带你理解什么是Java内存模型

    近期笔者在阅读<深入理解Java虚拟机:JVM高级特性与最佳实现(第3版)>,书中提到关于Java内存模型的知识点,但是看完之后还是感觉有些模糊,便查阅一些其他相关资料.本文是笔者经过对知 ...

  9. JSR 133 Java内存模型以及并发编程的最权威论文汇总

    Java内存模型 先看官方文档: https://docs.oracle.com/javase/specs/ JSR 133:Java TM内存模型和线程规范修订版:https://www.jcp.o ...

最新文章

  1. wamp配置虚拟主机
  2. 介绍一款开源的类Excel电子表格软件
  3. Mysql SQL Mode详解
  4. IOS用户界面的新视觉比例
  5. 【教程】Edraw Max使用教程:如何打印大流程图?
  6. win7下cmd常用命令
  7. Makefile,Shell command,Shell Language 之间的联系
  8. 学习笔记(1):Linux操作系统入门培训_Linux/Unix基础培训教程视频课程-01.Linux入门培训之_软硬件平台介绍...
  9. 原 《老路用得上的商学课》86-90学习笔记
  10. [实战]黑帽SEO的RayFile排名做法
  11. 面试25个经典问题回答技巧
  12. excel导出图片---HSSFWorkbook--SXSSFWorkbook
  13. 目前是大专学历如何快速提升到本科学历?学历提升有哪几种形式呢?
  14. 如何将iPhone中的手机通讯录同步至安卓手机(教学篇)
  15. 计算机网络:(终章)4万字长文,总复习
  16. Titan图形数据库的应用实例讲解
  17. 博客中的动态图片如何制作
  18. COMSOL学习(一)
  19. 【Arduino学习笔记】使用L298N电机驱动模块驱动直流电机
  20. 楷体DB_2312 安装包

热门文章

  1. Eclipse+SprignBoot实现文件上传
  2. 【数据竞赛】“达观杯”文本智能处理挑战赛6——模型优化
  3. java基础包的基本信息_JAVA 基础 之 基本数据类型、引用类型和包...
  4. html5 logo svg,HTML5新特性之用SVG绘制微信logo
  5. android布局加色,android – 如何以编程方式将LinearLayout添加背景颜色,并将权重添加到另一个布局...
  6. 计算机网络技术与计算机应用技术,计算机网络技术和计算机应用技术.pdf
  7. c语言什么是内联函数,C语言中内联函数inline的使用方法
  8. 喜报 | 链家签约神策数据,让数据“说话”更精准
  9. “策小编数洞”开工啦,欢迎来唠两块钱儿的
  10. 愿将一生献宏谋——送别于敏侧记