C# JAVAMemory model

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.


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

原文地址:https://www.cnblogs.com/WCFGROUP/p/4957719.html