The C# Memory Model

不妨,可以先看看java的内存模型,然后再来看后续的英文;效果可能要好一些!

http://blog.csdn.net/it_dx/article/details/70045286?locationNum=4&fps=1

先要看这个:

https://docs.microsoft.com/en-us/windows-hardware/drivers/kernel/acquire-and-release-semantics

然后:

http://www.albahari.com/threading/part4.aspx

然后:

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

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

https://www.codeproject.com/Articles/37282/Memory-Model-Memory-Barrier-and-Singleton-Pattern

note1:

    This means (in our case) that you can run .NET code on any CPU which has a CLR, and so long as you follow the rules of the memory model, you should be okay !

note2:

  "strong" or "weak" the memory model of the hardware itself is

 A "strong" memory model is one which guarantees a lot; a "weak" model is one which doesn't guarantee much at all, often giving better performance but requiring more work on the part of the developer

note3:

   when you have access to shared data, you need to make sure you read fresh data

原文地址:https://www.cnblogs.com/mc67/p/8371298.html