diff --git a/README.md b/README.md index d5dae7e..e621a2a 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,9 @@ -# concurrency_in_python +# Concurrency in Python -Learning outcomes from reading the book 'Learning Concurrency in Python' by Elliot Forbes - published by Packt \ No newline at end of file +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 in parallel. 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. \ No newline at end of file