There is lot of misconception in majority of Python Programmers regarding Global Interpreter Lock. Most of them think it's the worst part of Python. I will try to demonstrate how it actually works and how we can leverage multiple CPU cores for multithreading for I-O and CPU Bound tasks. I will also show some comparisons with different implementations of Python and the presence or absence of GIL in those, to answer questions like, why we can't just remove it from CPython and solve all our problems or why Jython performs better in Multithreading for CPU Bound tasks.
If you like this website, please upvote my Awesome Python pull request.