.. _session_2_09: ########################################## Session 9: Concurrency & Async Programming ########################################## * Concurrency * Threading and Multiprocessing * Message Queues * Coroutines * Async Reading ======= :ref:`concurrency` :ref:`threading` :ref:`async` Supplemental Readings ===================== *Fluent Python:* - Ch. 16: Coroutines - Ch. 17: Concurrency with Futures - Ch. 18: Concurrency with asyncio Threading --------- "Grok the GIL": https://emptysqua.re/blog/grok-the-gil-fast-thread-safe-python/ or the PyCon PyCon Talk: https://www.youtube.com/watch?time_continue=150&v=7SSYhuk5hmc Multiprocessing --------------- Async: ------ https://glyph.twistedmatrix.com/2014/02/unyielding.html The build in ``asyncio`` suffers from a lot of legacy -- for a new take, try: https://github.com/python-trio/trio (This is also one of the few places to see async discussed without any pre- 3.5 legacy...) Exercises ========= :ref:`exercise_downloader`