http://www.cl.cam.ac.uk/~pes20/weakmemory/index.html

http://preshing.com/20120913/acquire-and-release-semantics/

Memory Model

全面理解Java内存模型(JMM)及volatile关键字

深入理解Java内存模型(四)——volatile

http://preshing.com/20120625/memory-ordering-at-compile-time/

http://blogs.msdn.com/b/cbrumme/archive/2003/05/17/51445.aspx

http://www.cs.umd.edu/~pugh/java/memoryModel/

The following five references give you an introduction on out-of-order execution on modern CPUs:
[1] Instruction Pipeline by Wikipedia
[2] Out-of-Order Execution by Wikipedia
[3] Speculative Execution by Wikipedia
[4] CPU Cache by Wikipedia
[5] Release Consistency by Wikipedia
This reference tells you the current memory model development in Java and other mainstream languages:
[6] Memory Barriers: a Hardware View for Software Hackers by Paul E. McKenney
This reference tells you how mainstream processors handle out-of-order memory references:
[7] Memory Models: A Case for Rethinking Parallel Languages and Hardware by Sarita V. Adve et al.
This reference tells you an important compiler reorder mechanism:
[8] Instruction scheduling By Wikipedia
The following four references tell you everything about Java memory model (JMM) JSR-133:
[9] The JSR-133 Cookbook by Doug Lea
[10] The Java Memory Model by William Pugh
[11] Chapter 17 “Thread and Locks” in the Java Language Specification, Third Edition
[12] Chapter 8 “Threads and Locks” in the Java Virtual Machine Specification, Second Edition
This reference introduces you some of Sun’s current JIT compiler optimizations:
[13] The Java HotSpot Performance Engine Architecture
The following two references introduce you Java thread executor and fork-join frameworks:
[14] Concurrency JSR-166 Interest Site
[15] A Java Fork/Join Framework by Doug Lea
This reference introduces you distributed computing by actor model:
[16] Actor Model by Wikipedia

C# - The C# Memory Model in Theory and Practice

https://msdn.microsoft.com/en-us/magazine/jj863136.aspx

https://msdn.microsoft.com/magazine/jj863136

https://msdn.microsoft.com/en-us/magazine/jj883956.aspx

http://igoro.com/archive/volatile-keyword-in-c-memory-model-explained/

http://igoro.com/archive/gallery-of-processor-cache-effects/

http://joeduffyblog.com/2006/10/26/concurrency-and-the-impact-on-reusable-libraries/

What Every Multithread eDde Av pMpusst

https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Components.PostAttachments/00/10/67/06/52/MultiThreading.pdf

Understand the Impact of Low-Lock Techniques in Multithreaded Apps

https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Components.PostAttachments/00/10/67/06/54/LowLock.pdf

re 1: check out this document: http://www.oracle.com/technetwork/java/javase/memorymanagement-whitepaper-150215.pdf

re 2: this is covered in the JVM Specification, Chapter 3: http://java.sun.com/docs/books/jvms/second_edition/html/Overview.doc.html

re 3: not sure what you are asking, but it sounds like Chapter 5 of the VM spec is what you are looking for: http://java.sun.com/docs/books/jvms/second_edition/html/ConstantPool.doc.html

You probably want to read the whole VM spec actually: http://java.sun.com/docs/books/jvms/second_edition/html/VMSpecTOC.doc.html

Organization
 
Steering Committee

Ali-Reza Adl-Tabatabai, Intel
Trishul Chilimbi, Microsoft Research
Chen Ding, Univ. of Rochester
Ben Zorn, Microsoft Research

 
General Chair
 
Emery Berger, UMass Amherst

 

Program Chair

 
Brad Chen, Google

 
Program Committee
Ali-Reza Adl-Tabatabai, Intel
Emery Berger, UMass Amherst
Cliff Click, Azul Systems
Bruce Jacob, Univ. of Maryland
Jeremy Manson, Google
Sally McKee, Cornell University
Trevor Mudge, Univ. of Michigan
Onur Mutlu, Microsoft Research
Erez Petrank, Technion
Valentina Salapura, IBM Research
Michael Swift, Univ. of Wisconsin

The Java Memory Model

https://docs.oracle.com/javase/specs/jls/se9/html/jls-17.html#jls-17.4

http://www.infoq.com/cn/articles/java-memory-model-1

http://gee.cs.oswego.edu/dl/jmm/cookbook.html

http://www.cs.umd.edu/~pugh/java/memoryModel/jsr133.pdf

http://www.cs.umd.edu/~pugh/java/memoryModel/jsr-133-faq.html

https://dzone.com/articles/java-memory-model-programer%E2%80%99s

https://www.ibm.com/developerworks/library/j-jtp02244/index.html

https://www.ibm.com/developerworks/java/library/j-jtp03304/index.html

This web page is a starting point for discussions of and information concerning the Java Memory Model (Chapter  17 of the Java Language Specification). The Java Memory Model defines how threads interact through memory.  It used to be somewhat unclear and unnecessarily limiting, and so was revised.  This is a reference page for that revision. The official site for JSR 133 - The Java(tm) Memory Model and Thread Specification Revision - is here.

This page is divded up into several sections:


Reference Material

These reference materials are a good starting point for anyone trying to  understand the memory model.  Between them, they cover most of the major  issues involved.

Talk Slides

  • The slides from the June 2004 JavaOne presentation on JSR-133 are
    here.

-->


Mailing list


Additional Information

Double-Checked Locking is Broken

Double-checked locking (also known as the multithreaded singleton pattern) is a widely employed idiom for publishing a singleton object to multiple threads.

Other information


Older Material  (for the memory model historians among you)

This is a list of many of the revisions that the memory model underwent over the course of its three years in flight.  They are mostly out of date.  If you are interested in the model as it stands, your best  bet is the reference material above.

Draft Proposals for the Memory Model

Talks


Additional Background Reading

By Doug Lea

By Cenciarelli et al

By Schuster et al.

On other memory models

  • CAPSL Technical Memo 16: (148K gzipped Postscript), "Location Consistency -- a new Memory Model and Cache Consistency Protocol," Guang R. Gao, Vivek Sarkar, February 16, 1998.
  • TLA and TLA+, Lamport et al.

By Arvind et al.

By others

C# JAVAMemory model的更多相关文章

  1. JMM(java内存模型)

    What is a memory model, anyway? In multiprocessorsystems, processors generally have one or more laye ...

  2. 全面理解Java内存模型

    尊重原创:http://blog.csdn.net/suifeng3051/article/details/52611310 Java内存模型即JavaMemory Model,简称JMM.JMM定义 ...

  3. Java内存模型(转载)

    本文章节: 1.JMM简介 2.堆和栈 3.本机内存 4.防止内存泄漏 1.JMM简介 i.内存模型概述 Java平台自动集成了线程以及多处理器技术,这种集成程度比Java以前诞生的计算机语言要厉害很 ...

  4. 【深入理解JVM】:Java内存模型JMM

    多任务和高并发的内存交互 多任务和高并发是衡量一台计算机处理器的能力重要指标之一.一般衡量一个服务器性能的高低好坏,使用每秒事务处理数(Transactions Per Second,TPS)这个指标 ...

  5. 深入理解JMM(Java内存模型) --(一)

    并发编程模型的分类 在并发编程中,我们需要处理两个关键问题:线程之间如何通信及线程之间如何同步(这里的线程是指并发执行的活动实体).通信是指线程之间以何种机制来交换信息.在命令式编程中,线程之间的通信 ...

  6. 【java并发】(1)深入理解volatile关键字

    volatile这个关键字可能很多朋友都听说过,或许也都用过.在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果.在Java 5之后,volatile关键字才得以 ...

  7. JMM模型基础知识笔记

    概述 内存模型可以理解为在特定的操作协议下,对特定的内存或者高速缓存进行读写访问的过程抽象,不同架构下的物理机拥有不一样的内存模型,Java虚拟机也有自己的内存模型,即Java内存模型(JavaMem ...

  8. Spring Boot笔记一

    Spring Boot 入门 Spring Boot 简介 > 简化Spring应用开发的一个框架:> 整个Spring技术栈的一个大整合:> J2EE开发的一站式解决方案: 微服务 ...

  9. 【疯狂造轮子-iOS】JSON转Model系列之二

    [疯狂造轮子-iOS]JSON转Model系列之二 本文转载请注明出处 —— polobymulberry-博客园 1. 前言 上一篇<[疯狂造轮子-iOS]JSON转Model系列之一> ...

随机推荐

  1. UILabel字体间距调整

    思路: 写一个 UILbel的子类:在子类里面重新布置UILbel的字体间距: 如代码 .h #import <UIKit/UIKit.h> @interface AdjustableUI ...

  2. JSP的范围-作用域(web基础学习笔记五)

    JSP的范围(作用域) 在JSP页面中的对象,包括用户创建的对象如JavaBean,都有一个范围属性,这个范围也被叫做“作用域”.范围定义了在什么时间内,在哪一个JSP页面中可以访问这些对象.例如,s ...

  3. C语言的角落——C之很常使用特性(一)

    本文搜集整理了一些之前博客中没有提到的,C语言不经常使用的特性,算是对C系列的最后一次补充. 对C语言有兴趣的朋友能够浏览一下,查漏补缺. 变长參数列表 <stdarg.h> 头文件定义了 ...

  4. rpm常用命令及rpm参数介绍

    RPM是RedhatPackageManager的缩写,是由RedHat公司开发的软件包安装和管理程序,同Windows平台上的Uninstaller比较类似.使用RPM,用户可以自行安装和管理Lin ...

  5. PHP 表单和用户输入

    PHP 的 $_GET 和 $_POST 用于检索表单中的值,比如用户输入. index.php页面 <?php  /*时间:2014-09-14  *作者:葛崇  *功能:表单传值小实例  * ...

  6. Ubuntu系统安装VMware Tools的简单方法

    不少网友反映在VMWare虚拟机下安装Ubuntu系统后无法安装VMware Tools,这里给出一个简单方法,只需要几步即可解决. 第一步:进入系统后,点击虚拟机上的安装vmware tools,回 ...

  7. 项目重命名&复制项目&删除项目

          项目重命名&复制项目&删除项目 CreateTime--2016年10月15日17:25:43 Author:Marydon 1.修改项目名或者复制的项目名 第一步: my ...

  8. 【Oracle】ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务

    早上使用PL/SQL连接Oracle的时候,报错如下 解决办法: 找到文件listener.ora,新增以下红色区域,注意:路径需要根据自己的Oracle安装路径自行设置 # listener.ora ...

  9. linux RAID10测试

    mdadm命令用于管理系统软件RAID硬盘阵列,格式为:"mdadm [模式] <RAID设备名称> [选项] [成员设备名称]". mdadm命令能够在Linux系统 ...

  10. vscode简洁的代码编辑器

    微软去年tuichu的代码编辑神器,vscode很不辞哦,感受还不错.微软也破天荒地跨平台地支持... 支持多种语言 vscode(官方):code.visualstudio.com vscode中文 ...