Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.java.gui > #4586
| From | Daniele Futtorovic <da.futt.news@laposte-dot-net.invalid> |
|---|---|
| Newsgroups | comp.lang.java.gui |
| Subject | Re: Synchronization when collecting data from the EDT? |
| Date | 2011-06-08 00:10 +0200 |
| Organization | A noiseless patient Spider |
| Message-ID | <ism7lg$ku1$1@dont-email.me> (permalink) |
| References | (3 earlier) <nospam-0D155A.23474105062011@news.aioe.org> <TjZGp.40183$Vp.29218@newsfe14.iad> <nospam-7A4754.23033306062011@news.aioe.org> <islktt$kt1$1@dont-email.me> <nospam-1E20CE.13382907062011@news.aioe.org> |
On 07/06/2011 19:38, John B. Matthews allegedly wrote: > In article <islktt$kt1$1@dont-email.me>, > Daniele Futtorovic <da.futt.news@laposte-dot-net.invalid> wrote: > >> On 07/06/2011 05:03, John B. Matthews allegedly wrote: >>> Here's my (contrived) sscce. A javax.swing.Timer increments an int >>> at 100 Hz, while a java.util.TimerTask samples the value at 1 Hz. >>> I'd like the API to be a little more explicit, but it does say that >>> the calling thread blocks and the Runnable's dispatch "will happen >>> after all pending events are processed." >>> > [code elided] >> >> John, is it intended that you didn't use a thread-safe producer/consumer >> queue (a mere LinkedList)? I would have thought one would be necessary, >> but since it touches upon the subject Knute brought to our attention, >> I'm wondering whether there's some kind of point involved. > > I appreciate your insight on this. I'm afraid my example just > recapitulates Knute's question without answering it: Does the > invokeAndWait() API ensure correct synchronization when used as shown? > I'm confident that the _implementation_ I examined is correct, as the > relevant methods are synchronized. Sadly, I have a tendency to over- > read the API. Aha! So it was the point! :) Question then, for I am not an expert when it comes to the memory model: You say the implementation you examined guarantees the code's correctness. This seems to me to imply that the non-EDT thread, upon calling invokeAndWait(), because it locks and waits on some monitor, is guaranteed to fetch a fresh copy of the LinkedList instance before it proceeds to dereference it. Is that actually so? Makes sense I guess, but I had never thought of it like that. To be more precise, I believe my question boils down to this: when a thread's memory is flushed, is that always a full flush, or can it be a selective flush, and if so, how does the selection happen? > I can't find a Sun/Oracle example using invokeAndWait() dated later than > 2000, well after the advent of java.util.concurrent. Would it be correct > to infer that using, say BlockingQueue, would obviate the need for > invokeAndWait()? You mean "well before", don't you? A BlockingQueue would only be a good solution if the non-EDT thread is waiting for a value, rather than for a process to finish. But it would seem to me that Exchanger + CountdownLatch(1) would indeed make the "AndWait()" part obsolete. Or at least provide a complete alternative. -- DF. Determinism trumps correctness.
Back to comp.lang.java.gui | Previous | Next — Previous in thread | Next in thread | Find similar
Synchronization when collecting data from the EDT? Knute Johnson <nospam@knutejohnson.com> - 2011-06-04 17:38 -0700
Re: Synchronization when collecting data from the EDT? Knute Johnson <nospam@knutejohnson.com> - 2011-06-04 17:50 -0700
Re: Synchronization when collecting data from the EDT? Daniele Futtorovic <da.futt.news@laposte-dot-net.invalid> - 2011-06-05 17:52 +0200
Re: Synchronization when collecting data from the EDT? Knute Johnson <nospam@knutejohnson.com> - 2011-06-05 10:47 -0700
Re: Synchronization when collecting data from the EDT? "John B. Matthews" <nospam@nospam.invalid> - 2011-06-05 23:47 -0400
Re: Synchronization when collecting data from the EDT? Knute Johnson <nospam@knutejohnson.com> - 2011-06-05 22:11 -0700
Re: Synchronization when collecting data from the EDT? Daniele Futtorovic <da.futt.news@laposte-dot-net.invalid> - 2011-06-06 14:31 +0200
Re: Synchronization when collecting data from the EDT? "John B. Matthews" <nospam@nospam.invalid> - 2011-06-06 23:03 -0400
Re: Synchronization when collecting data from the EDT? Daniele Futtorovic <da.futt.news@laposte-dot-net.invalid> - 2011-06-07 18:51 +0200
Re: Synchronization when collecting data from the EDT? "John B. Matthews" <nospam@nospam.invalid> - 2011-06-07 13:38 -0400
Re: Synchronization when collecting data from the EDT? Daniele Futtorovic <da.futt.news@laposte-dot-net.invalid> - 2011-06-08 00:10 +0200
Re: Synchronization when collecting data from the EDT? "John B. Matthews" <nospam@nospam.invalid> - 2011-06-07 23:51 -0400
Re: Synchronization when collecting data from the EDT? Daniele Futtorovic <da.futt.news@laposte-dot-net.invalid> - 2011-06-10 01:17 +0200
Re: Synchronization when collecting data from the EDT? Daniele Futtorovic <da.futt.news@laposte-dot-net.invalid> - 2011-06-10 01:25 +0200
Re: Synchronization when collecting data from the EDT? "John B. Matthews" <nospam@nospam.invalid> - 2011-06-09 22:34 -0400
Re: Synchronization when collecting data from the EDT? Daniele Futtorovic <da.futt.news@laposte-dot-net.invalid> - 2011-06-10 05:22 +0200
Re: Synchronization when collecting data from the EDT? markspace <-@.> - 2011-06-10 08:04 -0700
Re: Synchronization when collecting data from the EDT? "John B. Matthews" <nospam@nospam.invalid> - 2011-06-10 21:13 -0400
Re: Synchronization when collecting data from the EDT? Knute Johnson <nospam@knutejohnson.com> - 2011-06-12 12:51 -0700
Re: Synchronization when collecting data from the EDT? markspace <-@.> - 2011-06-07 23:31 -0700
Re: Synchronization when collecting data from the EDT? Knute Johnson <nospam@knutejohnson.com> - 2011-06-08 23:07 -0700
Re: Synchronization when collecting data from the EDT? "John B. Matthews" <nospam@nospam.invalid> - 2011-06-09 18:35 -0400
Re: Synchronization when collecting data from the EDT? Knute Johnson <nospam@knutejohnson.com> - 2011-06-12 12:45 -0700
Re: Synchronization when collecting data from the EDT? Knute Johnson <nospam@knutejohnson.com> - 2011-06-08 23:05 -0700
Re: Synchronization when collecting data from the EDT? "John B. Matthews" <nospam@nospam.invalid> - 2011-06-09 14:35 -0400
Re: Synchronization when collecting data from the EDT? Roedy Green <see_website@mindprod.com.invalid> - 2011-06-05 13:39 -0700
Re: Synchronization when collecting data from the EDT? Knute Johnson <nospam@knutejohnson.com> - 2011-06-05 22:17 -0700
Re: Synchronization when collecting data from the EDT? markspace <-@.> - 2011-06-07 14:51 -0700
Re: Synchronization when collecting data from the EDT? markspace <-@.> - 2011-06-05 17:46 -0700
Re: Synchronization when collecting data from the EDT? Knute Johnson <nospam@knutejohnson.com> - 2011-06-05 22:41 -0700
Re: Synchronization when collecting data from the EDT? Daniele Futtorovic <da.futt.news@laposte-dot-net.invalid> - 2011-06-06 14:35 +0200
csiph-web