The reddit comments[1] on this article are very interesting as well. In particular, /u/driftingdev suggested it would be better to use concurrent.futures. To quote him/her:
In the last example:
pool = Pool()
pool.map(create_thumbnail, images)
pool.close()
pool.join()
would be 2 fewer lines with concurrent.futures:
with ThreadPoolExecutor(max_workers=4) as executor:
executor.map(create_thumbnail, images)
In the last example:
would be 2 fewer lines with concurrent.futures: [1] https://pay.reddit.com/r/Python/comments/1tyzw3/parallelism_...