Concurrency (was: Re: [GUI] Re: events & callbacks)

Antony Courtney antony@apocalypse.org
Wed, 12 Mar 2003 10:24:24 -0500


I have not been following this discussion particularly closely, so can't 
really comment on the specifics.

However, I think it is worth noting that Swing, Java's state-of-the-art 
cross-platform GUI toolkit, is NOT thread-safe, despite the fact that 
the Java language *and* libraries have had robust support for threads 
and multi-threaded programming from the start, and there was no shortage 
of developer resources or concurrent programming expertise on the Swing 
team.

The decision not to make Swing thread-safe was deliberate, and was based 
in part on brutal experience by previous attempts to build thread-safe 
GUI toolkits (Trestle, SubArctic, etc.).

I strongly encourage anyone who is thinking seriously about these issues 
to at least read the following short article:

http://java.sun.com/products/jfc/tsc/articles/threads/threads1.html

particularly the final section ("Why did we implement Swing This Way?") 
which discusses the rationale for their design.

Remember:  Worse Is Better.

	-antony

-- 
Antony Courtney
Grad. Student, Dept. of Computer Science, Yale University
antony@apocalypse.org          http://www.apocalypse.org/pub/u/antony