Path: csiph.com!x330-a1.tempe.blueboxinc.net!usenet.pasdenom.info!aioe.org!eternal-september.org!feeder.eternal-september.org!mx04.eternal-september.org!.POSTED!not-for-mail From: markspace <-@.> Newsgroups: comp.lang.java.programmer Subject: Re: Volatile happens before question Date: Wed, 18 Jan 2012 16:10:18 -0800 Organization: A noiseless patient Spider Lines: 21 Message-ID: References: <09848313-2372-4c23-8f52-fa84c612c100@u32g2000yqe.googlegroups.com> <1pi7kea3zdo0b.1ixhuq3p9ybbu$.dlg@40tude.net> <60dddbf9-3686-4824-a918-64a59faba177@a8g2000vba.googlegroups.com> <726da9ce-57f4-4136-b50b-56a032aca196@f1g2000yqi.googlegroups.com> <652cb878-fb2f-4361-8f70-61bc493cebf6@r16g2000yqi.googlegroups.com> <6280ea10-c656-40fa-ba3d-50f24d471978@j15g2000yqb.googlegroups.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Injection-Date: Thu, 19 Jan 2012 00:10:21 +0000 (UTC) Injection-Info: mx04.eternal-september.org; posting-host="XjIWM99mD7Ijfdu600oVPA"; logging-data="25215"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/SiDC3+ztMvVDbjxorLSdW36oQPoRXd8k=" User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:8.0) Gecko/20111105 Thunderbird/8.0 In-Reply-To: <6280ea10-c656-40fa-ba3d-50f24d471978@j15g2000yqb.googlegroups.com> Cancel-Lock: sha1:f4hyd7jSRkv3YCozcsgwPmfo5pw= Xref: x330-a1.tempe.blueboxinc.net comp.lang.java.programmer:11480 On 1/18/2012 3:30 PM, raphfrk@gmail.com wrote: > However, if the .get() gets the old value then it isn't guaranteed to > happen before the increment, i.e. there is no guarantee. If you get the old value, then no writes have occurred. We're talking AtomicInteger::get() here, right? Not Map::get() or something. Thread 1 Thread 2 Writer Reader map.put() // write writeCounter.increment() -----> writeCounter.get() // happens before map.get() // read -----> writerCounter.get() // happens before map.get()