Monitor performance issues & errors in your code

Can subinterpreters free us from Python's GIL?

Episode #225, published Mon, Aug 12, 2019, recorded Fri, Aug 2, 2019

Have you heard that Python is not good for writing concurrent asynchronous code? This is generally a misconception. But there is one class of parallel computing that Python is not good at: CPU bound work running the Python layer.

What's the main problem? It's Python's GIL or Global Interpreter Lock of course. Yet, the fix for this restriction may have been hiding inside CPython since version 1.5: subinterpreters.

Join me to talk about PEP 554 with core developer Eric Snow.
Links from the show

Eric on Twitter: @ericsnowcrntly
Eric's "Multi-core Python" project:
Blog post (2016):
Dave Beazley's talk on concurrency (performance):
PEP 554 ("Multiple Interpreters in the Stdlib"):
Original notes for PEP 554:
Python benchmarks:
Slides from Language Summit 2018:
Slides from Language Summit 2019:

Talk at PyCon US 2019, "to GIL or not to GIL: the Future of Multi-Core (C)Python"
Episode transcripts:

--- Stay in touch with us ---
Subscribe to us on YouTube:
Follow Talk Python on Mastodon: talkpython
Follow Michael on Mastodon: mkennedy

Want to go deeper? Check out our courses

Episode sponsored by
Ads served ethically
Talk Python's Mastodon Michael Kennedy's Mastodon