Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.java.programmer > #4843
| From | "John B. Matthews" <nospam@nospam.invalid> |
|---|---|
| Newsgroups | comp.lang.java.programmer |
| Subject | Re: Making one or more threads wait for another to produce a value or fail |
| Date | 2011-06-01 00:38 -0400 |
| Organization | The Wasteland |
| Message-ID | <nospam-E568B9.00384301062011@news.aioe.org> (permalink) |
| References | <alpine.DEB.2.00.1105311443530.28134@urchin.earth.li> <is41d4$s5p$1@lust.ihug.co.nz> |
In article <is41d4$s5p$1@lust.ihug.co.nz>, Lawrence D'Oliveiro <ldo@geek-central.gen.new_zealand> wrote: > In message <alpine.DEB.2.00.1105311443530.28134@urchin.earth.li>, Tom > Anderson wrote: > > > Penelope is a widow, or at least her husband isn't around any more > > (she's not sure which; long story). There are 108 suitors who would > > like to marry her. She hasn't decided which one she'll marry. So, > > the 108 suitors are sitting about waiting for her to decide. It's > > possible that instead of deciding to marry one of them, she'll > > deliver some other, exceptional, verdict (eg "turns out my husband > > is still alive, and will now murder you all"). > > > > Penelope is a thread, as are her suitors. Penelope has plenty to do > > after she delivers her verdict, so the verdict is not a return > > value - it's a value she'll pass to a method. <https://groups.google.com/forum/#!topic/comp.lang.java.programmer/PvSa1FPX6as/discussion> In this example, synchronization hinges on the entries of the protected object [1], verdict. The suitors queue on the obtain entry, waiting for the verdict. When penelope delivers the verdict, the barrier got_v is changed to allow the suitors to proceed. Ada protected types [2] are a common way to provide synchronized access to the private data of objects. I'm wary of a too-literal translation; but, if I understand the memory consistency effects of CountDownLatch correctly, penelope could establish the verdict and invoke countDown(), knowing that any suitors returning form await() would see the correct value. [1]<http://www.ada-auth.org/standards/12rm/html/RM-9-4.html> [2]<http://www.adaic.org/resources/add_content/standards/95rat/rat95html/rat95-p1-2.html#9> [3]<http://download.oracle.com/javase/6/docs/api/java/util/concurrent/CountDownLatch.html> -- John B. Matthews trashgod at gmail dot com <http://sites.google.com/site/drjohnbmatthews>
Back to comp.lang.java.programmer | Previous | Next — Previous in thread | Next in thread | Find similar
Making one or more threads wait for another to produce a value or fail Tom Anderson <twic@urchin.earth.li> - 2011-05-31 15:00 +0100
Re: Making one or more threads wait for another to produce a value or fail Peter Duniho <NpOeStPeAdM@NnOwSlPiAnMk.com> - 2011-05-31 07:14 -0700
Re: Making one or more threads wait for another to produce a value or fail Tom Anderson <twic@urchin.earth.li> - 2011-05-31 16:46 +0100
Re: Making one or more threads wait for another to produce a value or fail Deeyana <d.awlberg@hotmail.invalid> - 2011-05-31 19:23 +0000
Re: Making one or more threads wait for another to produce a value or fail Tom Anderson <twic@urchin.earth.li> - 2011-06-01 22:12 +0100
Re: Making one or more threads wait for another to produce a value or fail Peter Duniho <NpOeStPeAdM@NnOwSlPiAnMk.com> - 2011-05-31 20:45 -0700
Re: Making one or more threads wait for another to produce a value or fail Patricia Shanahan <pats@acm.org> - 2011-05-31 21:37 -0700
Re: Making one or more threads wait for another to produce a value or fail Peter Duniho <NpOeStPeAdM@NnOwSlPiAnMk.com> - 2011-06-01 07:18 -0700
Re: Making one or more threads wait for another to produce a value or fail Patricia Shanahan <pats@acm.org> - 2011-06-01 09:01 -0700
Re: Making one or more threads wait for another to produce a value or fail Lawrence D'Oliveiro <ldo@geek-central.gen.new_zealand> - 2011-06-01 16:40 +1200
Re: Making one or more threads wait for another to produce a value or fail "John B. Matthews" <nospam@nospam.invalid> - 2011-06-01 11:22 -0400
Re: Making one or more threads wait for another to produce a value or fail Lawrence D'Oliveiro <ldo@geek-central.gen.new_zealand> - 2011-06-02 10:15 +1200
Re: Making one or more threads wait for another to produce a value or fail "John B. Matthews" <nospam@nospam.invalid> - 2011-06-01 21:38 -0400
Re: Making one or more threads wait for another to produce a value or fail Tom Anderson <twic@urchin.earth.li> - 2011-06-01 22:07 +0100
Re: Making one or more threads wait for another to produce a value or fail Peter Duniho <NpOeStPeAdM@NnOwSlPiAnMk.com> - 2011-06-01 22:46 -0700
Re: Making one or more threads wait for another to produce a value or fail markspace <-@.> - 2011-05-31 08:26 -0700
Re: Making one or more threads wait for another to produce a value or fail Tom Anderson <twic@urchin.earth.li> - 2011-05-31 19:13 +0100
Re: Making one or more threads wait for another to produce a value or fail Patricia Shanahan <pats@acm.org> - 2011-05-31 09:06 -0700
Re: Making one or more threads wait for another to produce a value or fail Paul Cager <paul.cager@googlemail.com> - 2011-05-31 10:08 -0700
Re: Making one or more threads wait for another to produce a value or fail Patricia Shanahan <pats@acm.org> - 2011-05-31 10:39 -0700
Re: Making one or more threads wait for another to produce a value or fail Paul Cager <paul.cager@googlemail.com> - 2011-05-31 16:24 -0700
Re: Making one or more threads wait for another to produce a value or fail Lawrence D'Oliveiro <ldo@geek-central.gen.new_zealand> - 2011-06-01 12:33 +1200
Re: Making one or more threads wait for another to produce a value or fail "John B. Matthews" <nospam@nospam.invalid> - 2011-06-01 00:38 -0400
Re: Making one or more threads wait for another to produce a value or fail markspace <-@.> - 2011-06-02 14:10 -0700
Re: Making one or more threads wait for another to produce a value or fail markspace <-@.> - 2011-06-02 14:25 -0700
Re: Making one or more threads wait for another to produce a value or fail Patricia Shanahan <pats@acm.org> - 2011-06-02 14:43 -0700
csiph-web