- the Neuman architecture
- the role of the OS
- processes & threads
- running multiple processes on a single core
- time slicing / scheduling
- concurrency vs parallelism
- I/O vs CPU bound tasks
- threading.Thread
- the join method
- subclassing threading.Thread
- shared data
- thread lifecycle
- race condition
- atomic operations
- locking
- threading.Lock
- deadlocks
- lock timeout
- components of a producer-consumer model
- queue.Queue
- the join method