From 41260cf4201740c70f010fb6e9b889fbac95e9be Mon Sep 17 00:00:00 2001 From: sedex Date: Thu, 31 Dec 2020 17:48:58 +0000 Subject: [PATCH] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index e621a2a..ee18919 100644 --- a/README.md +++ b/README.md @@ -4,6 +4,6 @@ Learning outcomes from reading the book 'Learning Concurrency in Python' by Elli # 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. +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. \ No newline at end of file