This is a slightly dated (2009) but very informative talk from David Beazley about threading in Python and the Global Interpreter Lock.
Some topics include:
- details of how threads are implemented in python and where the GIL arises from and how it works. I found this very enlightening, specially given how little details the documentation gives about it.
- signal handling and pathological aspects of its relation to running threads.
- python’s reliance on the OS to deal with thread scheduling.