Thanks for the article!
Bonus mentions: ThreadPoolExecutor and ProcessPoolExecutor - they allow you to easily create a pool of threads (the first) or processes (the latter) and to submit work to them.
You can also do something similar with multiprocessing.Pool if you use processes.
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.