See:
http://www.cowtowncoder.com/blog/archives/2009/01/entry_132.html
And upgrade to 2.3.0
Plus use ExecutorService:
http://tutorials.jenkov.com/java-util-concurrent/executorservice.html
Default of 2 Executors, but should be configurable.
Executors.newFixedThreadPool(n);