[concurrency-interest] Unsafe publication of new objectsquestion

David Holmes davidcholmes at aapt.net.au
Fri Nov 12 22:12:47 EST 2010


Justin T. Sampson writes:
> On Fri, Nov 12, 2010 at 2:16 PM, David Holmes <davidcholmes at aapt.net.au>
wrote:
>> Andrew Trick writes:
>> > The JVM needs an effective store-store memory barrier between all
>> > stores that initialize a new object and any store that may publish a
>> > pointer to it. Not easy to do efficiently on all architectures.
>>
>> The JVM would need this if it were to guarantee safe-publication, but it
>> doesn't guarantee that.
>
>
> It does for final fields, right? Or is that a different concept?

There are additional guarantees regarding the initialization of final
fields. I suggest reading Section 17.5 of the Java Language Specification
for the details, but for a simple formulation see the "Final Fields" section
of the JMM Cookbook:

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

Cheers,
David Holmes



More information about the Concurrency-interest mailing list