Python iconPythonSep 30, 2026 ~7 min source read

Free-Threaded Python Post-Era: a proposal for safer, high-level concurrency from Python Language Summit 2026

Tobias Wrigstad, Fridtjof Stoldt, and Donghee Na presented Behavior-Oriented Concurrency (BOC): a task-based, data-aware concurrency model that aims to make free-threaded Python safe and performant while keeping the runtime responsible for scheduling and isolation.

Python Insider: Free-Threaded Python Post-Era (Python Language Summit 2026)

Share this story

Send the public story page.

Useful takeaways from this story.

BOC introduces data-aware mutexes called Cowns and a @when decorator to declare task dependencies, enabling the runtime to prevent deadlocks and data races.

BOC tasks are lightweight, can run on any core, and access data only via their declared Cowns, allowing the scheduler to enforce locking discipline and raise exceptions for problematic patterns.

BOC is presented as a high-level alternative to exposing raw threads or subinterpreters, aiming to satisfy PEP 779’s criterion for high-level concurrency primitives.

The useful part

Free-Threaded Python Post-Era (Python Language Summit 2026) | Python Insider Tobias Wrigstad and Fridtjof Stoldt returned to the Python Language Summit, now joined by Donghee Na. Tobias and Fridtjof previously presented " Fearless Concurrency " to the Python Language Summit in 2025. This year the topic at hand was the "post-era of free-threading Python", and what high-level concurrency primitives would be provided by Python.

How it works

  • Using threads means users need to care about deadlocks and race conditions.
  • The Python core team should begin considering and proposing higher-level concurrency primitives that users can use safely and effectively, without requiring a deep understanding of the underlying threading...
  • Erlang has multiple threads, but to communicate, data is copied over to the other "actor", so it's safe and simple, but performance suffers.
  • Subinterpreters (represented as multiple locks on the graphic) as a model are safer due to the isolation, but this model isn't simple or performant due to data copying.
  • Finally, there is free-threaded Python (racecar in the graphic), which is very similar to C: simple and performant, but it puts the burden on programmers for program correctness and safety.

What to take from it

In practice, there are always corner cases, and performance is suboptimal because of the constraints of the APIs. Python's free-threading project has made considerable progress since PEP 779 's acceptance. There was one aspect of PEP 779's acceptance criteria that hadn't been addressed yet: high-level concurrency primitives.

Example or evidence

  • "Where would we put Python on this triangle?" Python using the Global Interpreter Lock (GIL) (represented as a single lock on the graphic) is a simple model, but it's not completely safe, as the GIL "only...
  • Each task owns data that is protected by mutexes, but unlike the threading.Lock objects that we're used to in Python, these mutexes are aware of the data that they protect.
  • On the safety front, bocpy today runs in "stable Python", and for this reason only isolation has been implemented so far.
  • The group made it clear that changes to core Python would be needed to support safe concurrency, asking whether Python would trade "some performance for safety".

Details worth keeping

What if threads as a user interface aren't very good? Preparation for high-level concurrency primitives. We recommend using the concurrent package in the stdlib for this, where appropriate.

Related coverage

  • Python: The 2026 Python Language Summit was hosted in Kraków, Poland as part of EuroPython 2026. There were 15 talks covering free-threading, Rust, garbage collection, type annotations, and more.
  • Blogspot: On July 14th, 2026, 47 Python core developers and special guests sat down at the Python Language Summit, this year held in Kraków, Poland at EuroPython 2026, to discuss many topics about the future of the...
  • Python: Lightning talks on a one-time ABI break, safer interruptions, EktuPy (Scratch but Python), an AGENTS.md file for CPython, and a call to read PEP 836.
  • Python: Nathan Goldbaum proposes safe concurrent access through buffer leases and custom data types for the Python Buffer Protocol.
  • Python: Security updates across Python 3.10–3.14, the final maintenance release of 3.13, and a farewell to Python 3.10.

More context around this story.

Loading more related stories...

Keep reading in the app

Open the app view to save this story, compare related coverage, and continue from the same source.

Open in app