I was going through David Beazley's GIL-related slides, in an attempt to understand what causes threading switching in Python. However, a lot of it is over my head.
http://www.dabeaz.com/python/UnderstandingGIL.pdf
It seems that after 100 ticks or so, the current thread releases the GIL, and will reacquire it if it's CPU Bound?
On the other hand if it sleeps or is I/O Bound, then another thread will acquire the GIL.
So if a thread is CPU bound it will keep reacquiring until it finished the task?