Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.java.programmer > #23991
| From | Daniel Pitts <newsgroup.nospam@virtualinfinity.net> |
|---|---|
| Newsgroups | comp.lang.java.programmer |
| Subject | Re: The invokeLater loop |
| References | <invokeLater-loop-20130510204735@ram.dialup.fu-berlin.de> |
| Message-ID | <YJbjt.18$fS4.15@newsfe08.iad> (permalink) |
| Date | 2013-05-10 12:18 -0700 |
On 5/10/13 11:54 AM, Stefan Ram wrote:
> I invented what I call the »invokeLater loop«:
>
> class Object implements java.lang.Runnable
> { int i = 0;
> public void run()
> { java.lang.System.out.println( i++ );
> javax.swing.SwingUtilities.invokeLater( this ); }}
>
> public class Main
> { public static void main( final java.lang.String[] args )
> { javax.swing.SwingUtilities.invokeLater( new Object() ); }}
>
> What is it good for?
>
> Maybe it provides a way to loop while still allowing
> Swing events to be processed in parallel? (So you do not
> always have to spawn another thread besides the EDT.)
>
> One also might see it as a kind of recursion that will not
> overflow that stack. But since it does not atually nest
> incarnations, it is not really adopted for recursive programming.
>
A few comments:
That's isn't really a new invention.
It isn't recursive.
It encourages coupling the application logic to the UI environment.
It is a good way to eat up CPU cycles if you don't want to have your CPU
go idle. Also known as a laptop warmer.
It doesn't take advantage of concurrent processing capabilities of most
modern systems, ultimately slowing down both your EDT and your
application processing.
It is more error prone and harder to tune than using a SwingWorker.
Unrelated to the point you made Stefan, I feel I should make a note on
Stefan Ram(TM) convention. When I see "new Object()", and it isn't
referring to java.lang.Object, it takes me 10 times as long to
understand what the code is doing. I literally stared at that for 3 or 4
seconds before it clicked that you were using confusing class names and
hoping your abstruse convention would "clarify" the confusion.
Back to comp.lang.java.programmer | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
The invokeLater loop ram@zedat.fu-berlin.de (Stefan Ram) - 2013-05-10 18:54 +0000
Re: The invokeLater loop Daniel Pitts <newsgroup.nospam@virtualinfinity.net> - 2013-05-10 12:18 -0700
Re: The invokeLater loop Daniel Pitts <newsgroup.nospam@virtualinfinity.net> - 2013-05-10 14:26 -0700
Re: The invokeLater loop Joerg Meier <joergmmeier@arcor.de> - 2013-05-10 23:28 +0200
Re: The invokeLater loop Eric Sosman <esosman@comcast-dot-net.invalid> - 2013-05-10 17:39 -0400
Re: The invokeLater loop Daniele Futtorovic <da.futt.news@laposte-dot-net.invalid> - 2013-05-10 23:50 +0200
Re: The invokeLater loop markspace <markspace@nospam.nospam> - 2013-05-10 14:51 -0700
Re: The invokeLater loop Silvio <silvio@internet.com> - 2013-05-11 00:26 +0200
Re: The invokeLater loop Daniel Pitts <newsgroup.nospam@virtualinfinity.net> - 2013-05-10 15:52 -0700
Re: The invokeLater loop Roedy Green <see_website@mindprod.com.invalid> - 2013-05-10 23:27 -0700
Re: The invokeLater loop "Qu0ll" <Qu0llSixFour@gmail.com> - 2013-05-12 19:44 +1000
Re: The invokeLater loop Knute Johnson <eternal@knutejohnson.com> - 2014-01-30 20:48 -0800
csiph-web