New Python versions can have the GIL disabled, finally unleashing true parallelism! But what does this mean? free 10x faster code? All cores at 100%? We’ll dive into this brave new world of free threading Python, exploring the good, the bad, and the very ugly through live coding demos and examples.
Starting with Python 3.13, we’re getting access to an experimental free-threading build that removes Python’s Global Interpreter Lock (GIL). This isn’t just another performance tweak - it’s a fundamental shift in how Python handles concurrency, as outlined in PEP 703 (Making the Global Interpreter Lock Optional in CPython).
The GIL has long been one of Python’s most significant limitations, preventing true parallel execution of Python code. While we can try to work around it using multiprocessing, these workarounds often place constraints and memory penalties we can’t look away. The impact goes beyond just performance - it affects how we design libraries, structure our applications, and express concurrent operations.
Drawing from real-world example, and demonstrations, this talk will try to answer:
My name is Caio (sounds the same as Kyle). I have been a software engineer for more than 10 years now, and ever since I learned about parallelism, I have become fascinated about the subject, and I am always doing experiments with it. I work as a Python developer at Axonius, a cybersecurity company. I am based in Portugal where I am also doing my masters degree in parallel and distributed systems. I am originally from Brazil, but I live now in Porto with my wife and my dog.