Simplify code that waits for threads to finish. This allows to shorten wait time if threads finish earlier.
A subtle difference is that Thread.join() is a synchronized method while Thread.isAlive() is not one.

git-svn-id: https://svn.apache.org/repos/asf/tomcat/trunk@1634312 13f79535-47bb-0310-9956-ffa450edef68