public abstract class ManagedRunnable
A Managed Runnable is a convenient superclass for Runnables that want to support graceful
shutdown of threads. When someone wants the thread to be shut down, it calls requestShutdown().
The thread periodically checks if it should shut down by calling shouldShutdown(), and returns
from run() if it should.