Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.java.programmer > #10738
| Date | 2011-12-14 11:00 -0800 |
|---|---|
| From | Patricia Shanahan <pats@acm.org> |
| Newsgroups | comp.lang.java.programmer |
| Subject | Re: Volatile keyword |
| References | (1 earlier) <jc5ffc$28s$1@dont-email.me> <ddkce71iqujhrsrslsca33a5nep023c4si@4ax.com> <9kodm9FfqrU1@mid.individual.net> <OsmdndL60tQimXrTnZ2dnUVZ_judnZ2d@posted.palinacquisition> <9ks8r2Fld4U1@mid.individual.net> |
| Message-ID | <GvmdneWPfcr6b3XTnZ2dnUVZ_qqdnZ2d@earthlink.com> (permalink) |
On 12/14/2011 10:39 AM, Robert Klemme wrote: > On 12/13/2011 08:54 AM, Peter Duniho wrote: >> On 12/12/11 11:37 PM, Robert Klemme wrote: >>> [...]Bottom line is that the JVM spec does not make >>> any guarantees here (ยง17.7 see Lew's reference). >> >> I think it's worth being careful about "does not make any guarantees >> here". The implication of 17.7 is that there _is_ in fact a guarantee, >> for certain 64-bit fields marked as "volatile". Specifically, those >> which are of the type "double" or "long". This is true even on 32-bit >> systems. > > And what guarantee is there? Can you unambiguously formulate that and > provide reference to the JLS so everybody can check it? As indicated in the quoted material, the relevant section is "17.7 Non-atomic Treatment of double and long" http://java.sun.com/docs/books/jls/third_edition/html/memory.html#61803 The key paragraph, for this purpose, says: "For the purposes of the Java programming language memory model, a single write to a non-volatile long or double value is treated as two separate writes: one to each 32-bit half. This can result in a situation where a thread sees the first 32 bits of a 64 bit value from one write, and the second 32 bits from another write. Writes and reads of volatile long and double values are always atomic. Writes to and reads of references are always atomic, regardless of whether they are implemented as 32 or 64 bit values." Patricia
Back to comp.lang.java.programmer | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
Volatile keyword "raphfrk@gmail.com" <raphfrk@gmail.com> - 2011-12-12 04:51 -0800
Re: Volatile keyword Andreas Leitgeb <avl@gamma.logic.tuwien.ac.at> - 2011-12-12 14:31 +0000
Re: Volatile keyword "raphfrk@gmail.com" <raphfrk@gmail.com> - 2011-12-12 06:52 -0800
Re: Volatile keyword Lew <lewbloch@gmail.com> - 2011-12-12 06:34 -0800
Re: Volatile keyword markspace <-@.> - 2011-12-12 10:00 -0800
Re: Volatile keyword Tom Anderson <twic@urchin.earth.li> - 2011-12-12 18:41 +0000
Re: Volatile keyword Patricia Shanahan <pats@acm.org> - 2011-12-12 11:43 -0800
Re: Volatile keyword Roedy Green <see_website@mindprod.com.invalid> - 2011-12-12 11:15 -0800
Re: Volatile keyword Robert Klemme <shortcutter@googlemail.com> - 2011-12-13 08:37 +0100
Re: Volatile keyword Peter Duniho <NpOeStPeAdM@NnOwSlPiAnMk.com> - 2011-12-12 23:54 -0800
Re: Volatile keyword Robert Klemme <shortcutter@googlemail.com> - 2011-12-14 19:39 +0100
Re: Volatile keyword Daniel Pitts <newsgroup.nospam@virtualinfinity.net> - 2011-12-14 10:59 -0800
Re: Volatile keyword Patricia Shanahan <pats@acm.org> - 2011-12-14 11:00 -0800
Re: Volatile keyword Robert Klemme <shortcutter@googlemail.com> - 2011-12-14 22:35 +0100
Re: Volatile keyword Roedy Green <see_website@mindprod.com.invalid> - 2011-12-12 10:55 -0800
csiph-web