Wrapup And Resources

The design of the Java language makes multithreading essential for all
but the simplest applets. In particular, IO and GUI programming both
require multithreading to provide a seamless experience for the user.
By following the simple rules outlined in this article, as well as
thoroughly designing a system -- including its access to shared
resources -- before you've begun programming, you can avoid many common
and difficult-to-detect threading pitfalls.