I am trying to create a system that processes a queue of work. The system has the following specifications:
Use a thread pool. Here's one that handles the queueing of work items and dispatching them across the thread pool.