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


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

Re: Strange Socket problem

From Lew <noone@lewscanon.com>
Newsgroups comp.lang.java.programmer
Subject Re: Strange Socket problem
Date 2012-03-03 23:21 -0800
Organization albasani.net
Message-ID <jiv55b$b4s$1@news.albasani.net> (permalink)
References <jiojsa$5ol$1@dont-email.me> <4f512b27$0$26687$65785112@news.neostrada.pl> <jirjpg$rkb$1@news.albasani.net> <jirlma$bfm$1@dont-email.me> <4f51f338$0$1256$65785112@news.neostrada.pl>

Show all headers | View raw


x wrote:
> But, the volatile keyword does not provide any kind of access control. It just
> tells the JVM "hey, if this variable is changed by thread A, the changed value
> must be visible for thread B, so don't cache it too aggressively'.

It does more than that.

All writes from thread A prior to the write to the volatile variable are 
visible from thread B after the latter reads that variable.

However I agree that multiple views of the same volatile variable introduce 
danger, as in the idiom

  if (volaVar != null)
  {
    volarVar.doSomething();
  }

because there's a threat window between the conditional check for non-'null' 
and the dereference to the method call where another thread could set the 
variable to a different value.

There's also a threat when you use two volatile variables to control a code block:

  if (volaVar1.equals(SOME_VALUE) && volaVar2.equals(DIFFERENT_VALUE)) ...

because 'volaVar1' can change by the time you test the second clause.

-- 
Lew
Honi soit qui mal y pense.
http://upload.wikimedia.org/wikipedia/commons/c/cf/Friz.jpg

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


Thread

Strange Socket problem Knute Johnson <nospam@knutejohnson.com> - 2012-03-01 11:49 -0800
  Re: Strange Socket problem Steven Simpson <ss@domain.invalid> - 2012-03-01 20:59 +0000
    Re: Strange Socket problem Knute Johnson <nospam@knutejohnson.com> - 2012-03-01 13:30 -0800
      Re: Strange Socket problem Steven Simpson <ss@domain.invalid> - 2012-03-01 22:54 +0000
        Re: Strange Socket problem Knute Johnson <nospam@knutejohnson.com> - 2012-03-01 16:32 -0800
          Re: Strange Socket problem Steven Simpson <ss@domain.invalid> - 2012-03-03 09:08 +0000
            Re: Strange Socket problem Knute Johnson <nospam@knutejohnson.com> - 2012-03-03 17:48 -0800
  Re: Strange Socket problem markspace <-@.> - 2012-03-01 14:08 -0800
    Re: Strange Socket problem Knute Johnson <nospam@knutejohnson.com> - 2012-03-01 16:48 -0800
      Re: Strange Socket problem markspace <-@.> - 2012-03-02 08:33 -0800
        Re: Strange Socket problem Knute Johnson <nospam@knutejohnson.com> - 2012-03-02 15:29 -0800
          Re: Strange Socket problem markspace <-@.> - 2012-03-03 09:33 -0800
            Re: Strange Socket problem Knute Johnson <nospam@knutejohnson.com> - 2012-03-03 17:55 -0800
              Re: Strange Socket problem markspace <-@.> - 2012-03-03 20:06 -0800
                Re: Strange Socket problem Knute Johnson <nospam@knutejohnson.com> - 2012-03-03 21:02 -0800
                Re: Strange Socket problem "John B. Matthews" <nospam@nospam.invalid> - 2012-03-05 00:00 -0500
                Re: Strange Socket problem Knute Johnson <nospam@knutejohnson.com> - 2012-03-05 09:44 -0800
  Re: Strange Socket problem Martin Gregorie <martin@address-in-sig.invalid> - 2012-03-01 22:15 +0000
    Re: Strange Socket problem Knute Johnson <nospam@knutejohnson.com> - 2012-03-01 16:43 -0800
      Re: Strange Socket problem Martin Gregorie <martin@address-in-sig.invalid> - 2012-03-03 02:01 +0000
  Reiteration: Strange Socket problem Knute Johnson <nospam@knutejohnson.com> - 2012-03-01 16:51 -0800
    Re: Reiteration: Strange Socket problem Martin Gregorie <martin@address-in-sig.invalid> - 2012-03-03 02:02 +0000
  Re: Strange Socket problem x <x@x.x> - 2012-03-02 21:18 +0100
    Re: Strange Socket problem Lew <noone@lewscanon.com> - 2012-03-02 15:06 -0800
      Re: Strange Socket problem Knute Johnson <nospam@knutejohnson.com> - 2012-03-02 15:38 -0800
        Re: Strange Socket problem Lew <noone@lewscanon.com> - 2012-03-02 16:00 -0800
          Re: Strange Socket problem Knute Johnson <nospam@knutejohnson.com> - 2012-03-02 17:18 -0800
            Re: Strange Socket problem Martin Gregorie <martin@address-in-sig.invalid> - 2012-03-03 02:13 +0000
              Re: Strange Socket problem Steven Simpson <ss@domain.invalid> - 2012-03-03 08:41 +0000
                Re: Strange Socket problem Martin Gregorie <martin@address-in-sig.invalid> - 2012-03-03 18:26 +0000
        Re: Strange Socket problem x <x@x.x> - 2012-03-03 11:32 +0100
          Re: Strange Socket problem Knute Johnson <nospam@knutejohnson.com> - 2012-03-03 17:59 -0800
          Re: Strange Socket problem Lew <noone@lewscanon.com> - 2012-03-03 23:21 -0800
      Re: Strange Socket problem x <x@x.x> - 2012-03-03 10:59 +0100
        Re: Strange Socket problem Knute Johnson <nospam@knutejohnson.com> - 2012-03-03 18:08 -0800
    Re: Strange Socket problem Knute Johnson <nospam@knutejohnson.com> - 2012-03-02 15:33 -0800
  Re: Strange Socket problem Paka Small <paka-en@tumia.org> - 2012-03-03 03:32 -0800
    Re: Strange Socket problem Knute Johnson <nospam@knutejohnson.com> - 2012-03-03 18:00 -0800
  Re: Strange Socket problem x <x@x.x> - 2012-03-03 12:45 +0100
    Re: Strange Socket problem Knute Johnson <nospam@knutejohnson.com> - 2012-03-03 18:02 -0800

csiph-web