[concurrency-interest] Confused about Component.getTreeLock()
tackline at tackline.plus.com
Tue Mar 6 12:20:26 EST 2007
Gregg Wonderly wrote:
> The standing statement from the swing development team WAS that you should never
> touch a "realized" component without using the event dispatch thread. As of
> JDK1.5, they've ammended this statement to demand that anything which can cause
> a component to be realized must be in the event dispatch thread. This includes
> things like Window.pack() and Window.setVisible(true).
For Swing components. In fact other stuff, like JTextField via
documents, can use invokeLater internally and therefore screw up. So now
it's do everything on the EDT (with a few exceptions). It turns out that
the explicit multithreading capabilities of the Swing text doesn't
actually work or indeed make any sense.
I think there's probably a more general lesson in there.
More information about the Concurrency-interest