Why is there no GIL in the Java Virtual Machine? Why does Python need one so bad?

Python (the language) doesn’t need a GIL (which is why it can perfectly be implemented on JVM [Jython] and .NET [IronPython], and those implementations multithread freely). CPython (the popular implementation) has always used a GIL for ease of coding (esp. the coding of the garbage collection mechanisms) and of integration of non-thread-safe C-coded libraries (there … Read more

What is the global interpreter lock (GIL) in CPython?

Python 3.7 documentation I would also like to highlight the following quote from the Python threading documentation: CPython implementation detail: In CPython, due to the Global Interpreter Lock, only one thread can execute Python code at once (even though certain performance-oriented libraries might overcome this limitation). If you want your application to make better use … Read more