When managing a pool of threads, it would be nice if threads could
terminate and then be restarted with different work to perform.
The Thread documentation doesn't clearly describe the Thread lifecycle
state diagram, but experimentation shows that threads can't be
restarted.
In addition to describing the state diagram clearly, the implementation
should throw appropriate exceptions when attempting to make illegal
state transitions (e.g., start a terminated thread).
terminate and then be restarted with different work to perform.
The Thread documentation doesn't clearly describe the Thread lifecycle
state diagram, but experimentation shows that threads can't be
restarted.
In addition to describing the state diagram clearly, the implementation
should throw appropriate exceptions when attempting to make illegal
state transitions (e.g., start a terminated thread).