...
Wiki Markup |
---|
According to the _Java Language Specification_, §17.7, "Non-Atomic Treatment of {{double}} and {{long}}" \[[JLS 2005|AA. Bibliography#JLSReferences#JLS 05]\]: |
This behavior is implementation specific; Java virtual machines are free to perform writes to
long
anddouble
values atomically or in two parts. For the purposes of the Java programming language memory model, a single write to a non-volatilelong
ordouble
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.
...
<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="6fb0265d7aa41430-68129c9f-44b44cc0-903abfb2-99dd74f27c81d72059d5b608"><ac:plain-text-body><![CDATA[ | [[Goetz 2006 | AA. Bibliography#Goetz References#Goetz 06]] | 3.1.2, Non-atomic 64-Bit Operations | ]]></ac:plain-text-body></ac:structured-macro> |
<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="0ed2775d22ae9cda-707f7a67-42404aa2-801db651-182ab0400e02c4ae3378ce00"><ac:plain-text-body><![CDATA[ | [[Goetz 2004c | AA. Bibliography#Goetz References#Goetz 04c]] |
| ]]></ac:plain-text-body></ac:structured-macro> |
<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="d352d6985507875a-e18ba4ce-4ea74be8-bbafb5de-9b2d2e4c5c7894808154d1f3"><ac:plain-text-body><![CDATA[ | [[JLS 2005 | AA. Bibliography#JLS References#JLS 05]] | §17.7, Non-atomic Treatment of double and long | ]]></ac:plain-text-body></ac:structured-macro> |
...