sedex 41260cf420 | ||
---|---|---|
single_process_vs_multi_process | ||
single_thread_vs_multi_thread | ||
.gitignore | ||
LICENSE | ||
Pipfile | ||
Pipfile.lock | ||
README.md |
README.md
Concurrency in Python
Learning outcomes from reading the book 'Learning Concurrency in Python' by Elliot Forbes - published by Packt
Brief Preamble
Python has several implementations that each handle concurrent programming in their own language specific way. Some popular examples are CPython (C), PyPy (Python), Jython (Java) and IronPython (.NET). The C and Python implementations have a thread locking mechanism included called the Global Interpreter Lock (GIL). The purpose of this mechanism is to stop multiple threads from executing code simultaneously. This creates thread-safe programs by avoiding race conditions and deadlock.
This GIL has caused numerous debates about the performance of the Python lanuguage when it comes to multithreaded programming, because it essentially reduces all programs to using a single thread. This book teaches us about threads, processes concurrency, parallelism and asynchronicity in Python implementations that use the GIL, and how we can write performant code that takes advantage of the benefit these concepts bring.