[concurrency-interest] Java Memory Model versus dotnet Memory Model

Jeremy Manson jmanson at cs.purdue.edu
Thu Nov 3 11:57:23 EST 2005

Osvaldo Pinali Doederlein wrote:
> Hi,
> This excellent post (from Microsoft's JIT program manager) is a very
> good overview of this issue:
> http://discuss.develop.com/archives/wa.exe?A2=ind0203B&L=DOTNET&P=R375
> Go straight to "CAVEATS for V1" in the end.  Basically, it seems that
> Microsoft gets away with a weak MM and implementation, because they
> support mostly the P5/P6 platform which hardware MM is very strong.
> So they can use all compiler optimizations they want without issues.
> But IIRC the Intanium is not as nice as the Pentium, so I'd expect
> MS to have improved this in .NET 2.0 which supports 64-bit platforms.
> A+
> Osvaldo

I'm not sure how excellent this article is.  For example, his LazyInit 
example ignores reordering by the reader.  Even with the rules he 
states, you would really need a memory barrier before the first read of 
the singleton.

Having said that, the post is 3 years old and describes the ECMA 
standard, which we know they are ignoring.  So it may not be all that 
useful in understanding what they are doing now.


More information about the Concurrency-interest mailing list