This is class is a simple implementation of a thread pool, based on the
Runnable objects are sent to the pool with the runInThread(Runnable)
method, which blocks until a Thread becomes available.
The pool has a fixed number of Threads, and does not grow or
shrink based on demand.