Parts of the interpreter are not thread safe, although mainly due to the fact that their use in streaming mode with the massive use of blocking slows down single-threaded. (source) . This is similar to CPython's garbage collector using reference counting (the JVM and CLR do not, and therefore it is not necessary to lock / free the reference count every time). But even if someone thought of an acceptable solution and implemented it, third-party libraries would still have the same problems.
Please note that extensions written in C can actually get rid of GIL: http://docs.python.org/c-api/init.html#thread-state-and-the-global-interpreter-lock
user395760
source share