Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.java.programmer > #11494

Re: Volatile happens before question

From "raphfrk@gmail.com" <raphfrk@gmail.com>
Newsgroups comp.lang.java.programmer
Subject Re: Volatile happens before question
Date 2012-01-19 08:18 -0800
Organization http://groups.google.com
Message-ID <6b44805b-ff63-41ba-8060-cbd92164f9d6@o9g2000yqa.googlegroups.com> (permalink)
References (14 earlier) <jf78bd$s4v$1@dont-email.me> <652cb878-fb2f-4361-8f70-61bc493cebf6@r16g2000yqi.googlegroups.com> <jf7crq$p30$1@dont-email.me> <6280ea10-c656-40fa-ba3d-50f24d471978@j15g2000yqb.googlegroups.com> <jf7n1d$ojv$1@dont-email.me>

Show all headers | View raw


On Jan 19, 12:10 am, markspace <-@.> wrote:
> On 1/18/2012 3:30 PM, raph...@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()

Yes that is correct, it is also possible that it goes:

Thread 1                        Thread 2
Writer                          Reader

W1: map.put() // write
                                 R1: writeCounter.get() // happens
before
                                 R2: map.get()          // read
                                 R3: writerCounter.get() // happens
before
W2: writeCounter.increment()

So, the happens before chains are:

Thread 1:
<Start> happens before W1
W1 happens before W2

Thread 2:
<Start> happens before R1
R1 happens before R2
R2 happens before R3

Inter thread
None

So, there is no guarantee that W1 happens before R2 (and similar no
guarantee that R2 happens before W1), so they could occur at the same
time.

Back to comp.lang.java.programmer | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

Volatile happens before question "raphfrk@gmail.com" <raphfrk@gmail.com> - 2012-01-17 04:04 -0800
  Re: Volatile happens before question Peter Duniho <NpOeStPeAdM@NnOwSlPiAnMk.com> - 2012-01-17 08:17 -0800
    Re: Volatile happens before question markspace <-@.> - 2012-01-17 08:50 -0800
      Re: Volatile happens before question "raphfrk@gmail.com" <raphfrk@gmail.com> - 2012-01-17 09:00 -0800
    Re: Volatile happens before question "raphfrk@gmail.com" <raphfrk@gmail.com> - 2012-01-17 08:54 -0800
      Re: Volatile happens before question markspace <-@.> - 2012-01-17 11:24 -0800
    Re: Volatile happens before question Patricia Shanahan <pats@acm.org> - 2012-01-17 14:49 -0800
      Re: Volatile happens before question Knute Johnson <nospam@knutejohnson.com> - 2012-01-17 15:49 -0800
      Re: Volatile happens before question Peter Duniho <NpOeStPeAdM@NnOwSlPiAnMk.com> - 2012-01-17 17:14 -0800
        Re: Volatile happens before question Patricia Shanahan <pats@acm.org> - 2012-01-17 18:17 -0800
          Re: Volatile happens before question Joshua Maurice <joshuamaurice@gmail.com> - 2012-01-19 16:45 -0800
  Re: Volatile happens before question Knute Johnson <nospam@knutejohnson.com> - 2012-01-17 08:18 -0800
    Re: Volatile happens before question markspace <-@.> - 2012-01-17 08:33 -0800
      Re: Volatile happens before question Knute Johnson <nospam@knutejohnson.com> - 2012-01-17 08:49 -0800
        Re: Volatile happens before question Knute Johnson <nospam@knutejohnson.com> - 2012-01-17 09:21 -0800
          Re: Volatile happens before question markspace <-@.> - 2012-01-17 10:10 -0800
            Re: Volatile happens before question Daniel Pitts <newsgroup.nospam@virtualinfinity.net> - 2012-01-17 10:28 -0800
              Re: Volatile happens before question markspace <-@.> - 2012-01-17 10:41 -0800
                Re: Volatile happens before question Daniel Pitts <newsgroup.nospam@virtualinfinity.net> - 2012-01-17 11:06 -0800
                Re: Volatile happens before question markspace <-@.> - 2012-01-17 12:09 -0800
                Re: Volatile happens before question markspace <-@.> - 2012-01-17 12:12 -0800
                Re: Volatile happens before question "raphfrk@gmail.com" <raphfrk@gmail.com> - 2012-01-17 12:38 -0800
                Re: Volatile happens before question markspace <-@.> - 2012-01-17 13:35 -0800
                Re: Volatile happens before question markspace <-@.> - 2012-01-17 14:41 -0800
                Re: Volatile happens before question Patricia Shanahan <pats@acm.org> - 2012-01-17 14:55 -0800
                Re: Volatile happens before question markspace <-@.> - 2012-01-17 15:27 -0800
                Re: Volatile happens before question Peter Duniho <NpOeStPeAdM@NnOwSlPiAnMk.com> - 2012-01-17 17:37 -0800
                Re: Volatile happens before question Peter Duniho <NpOeStPeAdM@NnOwSlPiAnMk.com> - 2012-01-17 17:42 -0800
            Re: Volatile happens before question Knute Johnson <nospam@knutejohnson.com> - 2012-01-17 15:46 -0800
              Re: Volatile happens before question markspace <-@.> - 2012-01-17 16:14 -0800
                Re: Volatile happens before question Knute Johnson <nospam@knutejohnson.com> - 2012-01-17 20:01 -0800
                Re: Volatile happens before question Peter Duniho <NpOeStPeAdM@NnOwSlPiAnMk.com> - 2012-01-17 20:37 -0800
                Re: Volatile happens before question Knute Johnson <nospam@knutejohnson.com> - 2012-01-17 21:52 -0800
                Re: Volatile happens before question Peter Duniho <NpOeStPeAdM@NnOwSlPiAnMk.com> - 2012-01-17 23:47 -0800
                Re: Volatile happens before question Peter Duniho <NpOeStPeAdM@NnOwSlPiAnMk.com> - 2012-01-18 00:08 -0800
                Re: Volatile happens before question Knute Johnson <nospam@knutejohnson.com> - 2012-01-18 09:04 -0800
                Re: Volatile happens before question Steven Simpson <ss@domain.invalid> - 2012-01-18 11:22 +0000
                Re: Volatile happens before question "raphfrk@gmail.com" <raphfrk@gmail.com> - 2012-01-18 06:24 -0800
                Re: Volatile happens before question Peter Duniho <NpOeStPeAdM@NnOwSlPiAnMk.com> - 2012-01-18 07:32 -0800
                Re: Volatile happens before question "raphfrk@gmail.com" <raphfrk@gmail.com> - 2012-01-18 08:34 -0800
                Re: Volatile happens before question markspace <-@.> - 2012-01-18 10:12 -0800
                Re: Volatile happens before question "raphfrk@gmail.com" <raphfrk@gmail.com> - 2012-01-18 11:15 -0800
                Re: Volatile happens before question markspace <-@.> - 2012-01-18 11:59 -0800
                Re: Volatile happens before question "raphfrk@gmail.com" <raphfrk@gmail.com> - 2012-01-18 12:24 -0800
                Re: Volatile happens before question markspace <-@.> - 2012-01-18 13:16 -0800
                Re: Volatile happens before question Knute Johnson <nospam@knutejohnson.com> - 2012-01-18 15:00 -0800
                Re: Volatile happens before question markspace <-@.> - 2012-01-18 16:12 -0800
                Re: Volatile happens before question Patricia Shanahan <pats@acm.org> - 2012-01-18 16:34 -0800
                Re: Volatile happens before question markspace <-@.> - 2012-01-18 17:17 -0800
                Re: Volatile happens before question Patricia Shanahan <pats@acm.org> - 2012-01-18 19:03 -0800
                Re: Volatile happens before question "raphfrk@gmail.com" <raphfrk@gmail.com> - 2012-01-18 15:30 -0800
                Re: Volatile happens before question markspace <-@.> - 2012-01-18 16:10 -0800
                Re: Volatile happens before question "raphfrk@gmail.com" <raphfrk@gmail.com> - 2012-01-19 08:18 -0800
                Re: Volatile happens before question markspace <-@.> - 2012-01-19 09:40 -0800
                Re: Volatile happens before question "raphfrk@gmail.com" <raphfrk@gmail.com> - 2012-01-19 10:10 -0800
                Re: Volatile happens before question markspace <-@.> - 2012-01-19 10:39 -0800
                Re: Volatile happens before question "raphfrk@gmail.com" <raphfrk@gmail.com> - 2012-01-19 12:13 -0800
                Re: Volatile happens before question markspace <-@.> - 2012-01-19 13:31 -0800
                Re: Volatile happens before question "raphfrk@gmail.com" <raphfrk@gmail.com> - 2012-01-19 16:14 -0800
                Re: Volatile happens before question markspace <-@.> - 2012-01-19 21:16 -0800
                Re: Volatile happens before question "raphfrk@gmail.com" <raphfrk@gmail.com> - 2012-01-20 03:23 -0800
                Re: Volatile happens before question "raphfrk@gmail.com" <raphfrk@gmail.com> - 2012-01-20 06:46 -0800
                Re: Volatile happens before question markspace <-@.> - 2012-01-20 08:56 -0800
                Re: Volatile happens before question Lew <noone@lewscanon.com> - 2012-01-20 11:12 -0800
                Re: Volatile happens before question Peter Duniho <NpOeStPeAdM@NnOwSlPiAnMk.com> - 2012-01-18 17:06 -0800
                Re: Volatile happens before question Daniel Pitts <newsgroup.nospam@virtualinfinity.net> - 2012-01-19 12:46 -0800
                Re: Volatile happens before question markspace <-@.> - 2012-01-19 13:38 -0800
                Re: Volatile happens before question Peter Duniho <NpOeStPeAdM@NnOwSlPiAnMk.com> - 2012-01-18 07:32 -0800
                Re: Volatile happens before question Lew <noone@lewscanon.com> - 2012-01-18 00:06 -0800
                Re: Volatile happens before question Knute Johnson <nospam@knutejohnson.com> - 2012-01-18 09:23 -0800
                Re: Volatile happens before question Joshua Maurice <joshuamaurice@gmail.com> - 2012-01-19 17:07 -0800
                Re: Volatile happens before question Joshua Maurice <joshuamaurice@gmail.com> - 2012-01-19 17:12 -0800
                Re: Volatile happens before question Joshua Maurice <joshuamaurice@gmail.com> - 2012-01-19 19:22 -0800
  Re: Volatile happens before question Daniel Pitts <newsgroup.nospam@virtualinfinity.net> - 2012-01-17 10:24 -0800

csiph-web