Chapter 2. Thread-based Parallelism
In this chapter, we will cover the following recipes:
- How to use the Python threading module
 - How to define a thread
 - How to determine the current thread
 - How to use a thread in a subclass
 - Thread synchronization with Lock and RLock
 - Thread synchronization with semaphores
 - Thread synchronization with a condition
 - Thread synchronization with an event
 - How to use the 
withstatement - Thread communication using a queue
 - Evaluating the performance of multithread applications
 - The criticality of multithreaded programming