Python Series : Multithreading in Practice using Python’s threading Module

Part 2 of a 3-part series on Python concurrency: Threads, Async, and the GIL