Python - David Beazley's "Understanding The Python GIL"
This talk explains a lot about Python's multithreading: http://www.dabeaz.com/python/UnderstandingGIL.pdfIn Python 2.7, it knows to switch to different thread whenever it starts waiting on IO. And, it will check if it needs to switch threads every 100 bytecode instructions.