I often speak with people who have come to Python from Java or .NET, and really want to use threads. Their excitement decreases dramatically when they discover that Python’s threads are limited by the GIL — the “global interpreter lock,” which ensures that only one thread runs at a given time. Why does the GIL exist, what does it do, how does it affect Python performance, and what can we do about it? In this talk, Larry Hastings describes the GIL’s past, present, and future. If you’re a Python developer who is curious about what threads can and cannot be expected to do, and why the GIL still exists, this talk should be very interesting.