Basically yes. You can think of it as a more performant multiprocessing. Although the Python interface you mention will only be available in 3.13, for now it's strictly for the C API Answer from Yoghurt42 on reddit.com
๐ŸŒ
Real Python
realpython.com โ€บ python312-subinterpreters
Python 3.12 Preview: Subinterpreters โ€“ Real Python
May 3, 2024 - In this tutorial, you'll preview one of the upcoming features of Python 3.12 and a proposed change to Python 3.13, addressing how subinterpreters work in the CPython program. The changes are described in PEP 684 and PEP 554.
๐ŸŒ
ThinhDA
thinhdanggroup.github.io โ€บ subinterpreter
Python 3.12 Subinterpreters: A New Era of Concurrency - ThinhDA
September 23, 2023 - In Python 3.12, work has been ongoing to make subinterpreters more accessible with the introduction of a per-interpreter GIL, making it possible to have a separate interpreter lock for each subinterpreter.
Discussions

Are Python 3.12 subinterpreters multi-CPU? - Stack Overflow
Python 3.12 exposes the subinterpreter functionality: after starting the Python main.exe you can spawn multiple subinterpreter threads. Questions: As the subinterpreter threads run in the same pro... More on stackoverflow.com
๐ŸŒ stackoverflow.com
cpython - ImportError with Numpy using Python/C 3.12 API subinterpreters - Stack Overflow
To prevent either a large number of bugs in existing extension modules or a lack of adoption of Python 3.12, methods were added so that when you want to import a module, Python can first determine whether itโ€™s ready for this new feature. ... Note: If a subinterpreter with a per-interpreter ... More on stackoverflow.com
๐ŸŒ stackoverflow.com
Independent SubInterpreters are still not concurrent with python 3.12+
I've removed any functions call even functions like sum(). It seems like SubInterpreter creations and even function starts are concurrent, but overall it's still synchronized on something (despite the fact that python 3.12+ should support per-interpreter GIL). More on github.com
๐ŸŒ github.com
16
January 23, 2025
Python 3.12 Preview: Subinterpreters โ€“ Real Python
registation wall, can't read the article More on reddit.com
๐ŸŒ r/Python
30
141
September 26, 2023
๐ŸŒ
Reddit
reddit.com โ€บ r/python โ€บ what are the differences between python 3.12 sub-interpreters and multithreading/multiprocessing?
r/Python on Reddit: What are the differences between Python 3.12 sub-interpreters and multithreading/multiprocessing?
October 3, 2023 -

It seems like the new feature in Python 3.12 allows developers to create multiple sub-interpreters within a single main interpreter process. From the example from the PEP 554, sub-interpreters appear to be separate threads that run a dedicated piece of Python code and consequently have their own separate GILs.

interp = interpreters.create()
print('before')
interp.run('print("during")')
print('after')

On practice, is this basically the new Pythonic way to run a single application in multiple threads and take advantage of multiple cores? If yes, can they be thought as multithreading with no shared state and become the future alternative of multiprocessing?

๐ŸŒ
Anthony Shaw
tonybaloney.github.io โ€บ posts โ€บ sub-interpreter-web-workers.html
Running Python Parallel Applications with Sub Interpreters
November 17, 2023 - Python 3.12 introduced a new API for โ€œsub interpretersโ€, which are a different parallel execution model for Python that provide a nice compromise between the true parallelism of multiprocessing, but with a much faster startup time.
๐ŸŒ
Stack Overflow
stackoverflow.com โ€บ questions โ€บ 78766850 โ€บ are-python-3-12-subinterpreters-multi-cpu
Are Python 3.12 subinterpreters multi-CPU? - Stack Overflow
Python 3.12 exposes the subinterpreter functionality: after starting the Python main.exe you can spawn multiple subinterpreter threads. Questions: As the subinterpreter threads run in the same pro...
๐ŸŒ
Readthedocs
pythondev.readthedocs.io โ€บ subinterpreters.html
Python Subinterpreters โ€” Unofficial Python Development (Victor's notes) documentation
Effects of the EXPERIMENTAL_ISOLATED_SUBINTERPRETERS macro: Good things! Per-interpreter GIL!!! Use a TSS to get the current Python thread state (โ€˜tstateโ€™)
๐ŸŒ
GitHub
github.com โ€บ jsbueno โ€บ extrainterpreters
GitHub - jsbueno/extrainterpreters: Utilities for using Python's PEP 554 subinterpreters
This was made available in 2023 as Python 3.12 came out to allow some experiments and sending objects back and forth subinterpreters.
Starred by 122 users
Forked by 8 users
Languages ย  Python 96.8% | C 3.2% | Python 96.8% | C 3.2%
Find elsewhere
๐ŸŒ
Python
peps.python.org โ€บ pep-0554
PEP 554 โ€“ Multiple Interpreters in the Stdlib | peps.python.org
Along with exposing the existing (in CPython) multiple interpreter support, the module will also support a basic mechanism for passing data between interpreters. That involves setting โ€œshareableโ€ objects in the __main__ module of a target subinterpreter. Some such objects, like os.pipe(), may be used to communicate further.
๐ŸŒ
Python documentation
docs.python.org โ€บ 3 โ€บ whatsnew โ€บ 3.12.html
What's New In Python 3.12 โ€” Python 3.14.3 documentation
February 23, 2026 - The feature was deprecated in Python 3.9. (Contributed by Victor Stinner in gh-94352.) The os module no longer accepts bytes-like paths, like bytearray and memoryview types: only the exact bytes type is accepted for bytes strings. (Contributed by Victor Stinner in gh-98393.) syslog.openlog() and syslog.closelog() now fail if used in subinterpreters.
๐ŸŒ
LWN.net
lwn.net โ€บ Articles โ€บ 985041
Python subinterpreters and free-threading [LWN.net]
August 20, 2024 - In Python 3.11, there was one GIL per Python process, which is why multiprocessing is used for "fully parallel code execution". In Python 3.12, subinterpreters got their own GIL, so there was a GIL per interpreter. That means that two things can be running at once in a single Python process ...
๐ŸŒ
GitHub
github.com โ€บ ninia โ€บ jep โ€บ issues โ€บ 593
Independent SubInterpreters are still not concurrent with python 3.12+ ยท Issue #593 ยท ninia/jep
January 23, 2025 - I've removed any functions call even functions like sum(). It seems like SubInterpreter creations and even function starts are concurrent, but overall it's still synchronized on something (despite the fact that python 3.12+ should support per-interpreter GIL).
Author ย  novos40
๐ŸŒ
GitHub
github.com โ€บ ChillFish8 โ€บ python12-subinterpreters
GitHub - ChillFish8/python12-subinterpreters: Some simple and hopefully safe-ish bindings to Python 3.12's sub-interpreters.
These are some safe-ish Rust bindings to the new CFFI API for creating and managing sub-interpreters within Python. ... Which will build and compile the library which can then be imported as subinterpreters.
Author ย  ChillFish8
๐ŸŒ
Reddit
reddit.com โ€บ r/python โ€บ python 3.12 preview: subinterpreters โ€“ real python
r/Python on Reddit: Python 3.12 Preview: Subinterpreters โ€“ Real Python
September 26, 2023 - Multiple sub interpreters allows u to explicitly share a single resource across them so long as this is hidden from pythons viewpoint and access is properly restricted with mutexes and whatever else.
๐ŸŒ
Europython
ep2024.europython.eu โ€บ session โ€บ python-in-parallel-sub-interpreters-vs-nogil-vs-multiprocessing
Python in Parallel: Sub-Interpreters vs. NoGIL vs. Multiprocessing
A new per-Interpreter GIL in Python 3.12 helps to facilitate true parallelism by opening up sub interpreters to run Python codes at the same time.
๐ŸŒ
GitHub
github.com โ€บ pythonnet โ€บ pythonnet โ€บ issues โ€บ 2333
Support for creating python sub-interpreters ยท Issue #2333 ยท pythonnet/pythonnet
February 29, 2024 - One of the most exciting features of Python 3.12 is the possibility of creating sub-interpreters programmatically, each with an independent per-interpreter lock. This feature relies on a new C API function Py_NewInterpreterFromConfig. Ne...
Author ย  glopesdev
๐ŸŒ
Daily.dev
app.daily.dev โ€บ posts โ€บ python-3-12-subinterpreters-a-new-era-of-concurrency-he3b0d2ow
Python 3.12 Subinterpreters: A New Era of Concurrency | daily.dev
December 8, 2023 - Python 3.12 introduces subinterpreters, a new feature that allows for concurrent execution in Python. Subinterpreters run Python code in parallel with the main interpreter, in the same process and address space, but with completely isolated ...
๐ŸŒ
Martin Heinz
martinheinz.dev โ€บ blog โ€บ 97
Real Multithreading is Coming to Python - Learn How You Can Use It Now | Martin Heinz | Personal Website & Blog
May 14, 2023 - While release of Python 3.12 is some months away, the code is already there, so let's take an early peek at how we can use it to write truly concurrent Python code using sub-interpreters API.
๐ŸŒ
I Programmer
i-programmer.info โ€บ news โ€บ 216-python โ€บ 16652-python-312-is-out-and-it-has-sub-interpreters.html
Python 3.12 Is Out And It Has Sub-Interpreters - I Programmer
Programming book reviews, programming tutorials,programming news, C#, Ruby, Python,C, C++, PHP, Visual Basic, Computer book reviews, computer history, programming history, joomla, theory, spreadsheets and more.