See JDK 5's Executor and BlockingQueue for some neat background on thread pools. I found these very intuitive to use. If you don't, just give a holler up in the theading forum.
If you're on JDK 1.4 or later, read up on
NIO. I need to set aside a block of time to make my Wiki do this just to learn how it works.