Also there is "gotcha" in Thread:Pool, if an exception occurs inside the thread processing, it kills the thread silently and will eventually hose your pool because even though the thread is dead the pool won't create a new one to replace it.