Python
peps.python.org › pep-0734
PEP 734 – Multiple Interpreters in the Stdlib | peps.python.org
November 6, 2023 - This includes Interpreter objects that represent the underlying interpreters. The module will also provide a basic Queue class for communication between interpreters. Finally, we will add a new concurrent.futures.InterpreterPoolExecutor based on the interpreters module.
python - InterpreterPoolExecutor vs ProcessPoolExecutor - Stack Overflow
Python 3.14 introduced InterpreterPoolExecutor. How is it different from ProcessPoolExecutor? Here are the ways they are similar: Both can utilize multiple CPU cores Both use pickle to share obje... More on stackoverflow.com
`InterpreterPoolExecutor`'s default thread name prefix is invalid
With this code, htop with "Show custom thread names" enabled) shows it's ThreadPoolExecutor instead of InterpreterPoolExecutor: More on github.com
Minor InterpreterPoolExecutor Issues
Bug report Bug description: __main__ handling isn't quite right non-pickleable-but-shareable objects fail common code with test.support.interpreters should be shared This has gh-132775 as a pre... More on github.com
InterpreterPoolExecutor raises NotShareableError for numpy array
Bug report Bug description: This would appear to be a regression, as ProcessPoolExecutor can work with numpy arrays. I would hazard it has something to do with the optimisations around sharing data types like bytes and str between interp... More on github.com
Videos
10:56
Python Concurrent Futures - ThreadPoolExecutor & ProcessPoolExecutor ...
03:54
Using ThreadPoolExecutor and ProcessPoolExecutor in python - Code ...
How To Use ThreadPoolExecutor and ProcessPoolExecutor ...
02:29
Parallel Tasks in a Pool of Threads and Processes - YouTube
04:41
Python ProcessPoolExecutors Tutorial - YouTube
06:09
Python concurrent futures Process Pool Executor | Python ...
GitHub
github.com › python › cpython › issues › 136603
InterpreterPoolExecutor does not work as replacement of ThreadPoolExecutor. · Issue #136603 · python/cpython
July 13, 2025 - import concurrent.futures from concurrent.futures import InterpreterPoolExecutor, ThreadPoolExecutor def fib(n): if n < 2: return n return fib(n-1) + fib(n-2) with InterpreterPoolExecutor(max_workers=5) as executor: futures = {executor.submit(fib, n): n for n in range(10)} for future in concurrent.futures.as_completed(futures): n = futures[future] data = future.result() print(f"fib({n}): {data}")
Author corona10
Carlmastrangelo
carlmastrangelo.com › blog › interpreterpoolexecutor-we-need-pep-734
InterpreterPoolExecutor - We Need PEP 734 - Carl Mastrangelo
Python 3.14 adds a new module and APIs for creating sub-interpreters. (e.g. InterpreterPoolExecutor) Significant work has gone into CPython to make the Interpreter state a thread-local, meaning it’s possible to run multiple “Pythons” in the same process.
Stack Overflow
stackoverflow.com › questions › 79832203 › interpreterpoolexecutor-vs-processpoolexecutor
python - InterpreterPoolExecutor vs ProcessPoolExecutor - Stack Overflow
December 29, 2025 - Python 3.14 introduced InterpreterPoolExecutor. How is it different from ProcessPoolExecutor? Here are the ways they are similar: Both can utilize multiple CPU cores Both use pickle to share obje...
GitHub
github.com › python › cpython › issues › 136470
`InterpreterPoolExecutor`'s default thread name prefix is invalid · Issue #136470 · python/cpython
July 9, 2025 - from concurrent.futures import InterpreterPoolExecutor def w(): import time time.sleep(100) executor1 = InterpreterPoolExecutor() executor1.submit(w) executor1.submit(w) executor2 = InterpreterPoolExecutor() executor2.submit(w) executor2.submit(w) executor1.shutdown() executor2.shutdown()
Author aisk
GitHub
github.com › python › cpython › issues › 133485
Minor InterpreterPoolExecutor Issues · Issue #133485 · python/cpython
May 6, 2025 - gh-133485: Use interpreters.Interpreter in InterpreterPoolExecutor #133957 · [3.14] gh-133485: Use interpreters.Interpreter in InterpreterPoolExecutor (gh-133957) #135695 · Reactions are currently unavailable · ericsnowcurrently ·
Author ericsnowcurrently
Pika Tech
blog.pika-tech.com › posts › real concurrency in python 3.14: interpreterpoolexecutor and beyond
Real Concurrency in Python 3.14: InterpreterPoolExecutor and Beyond | Pika Tech
September 29, 2025 - from concurrent.futures import InterpreterPoolExecutor def heavy_calc(n): total = 0 for i in range(n): total += (i * i) % 7 return total if __name__ == "__main__": tasks = [50_000_000, 60_000_000, 70_000_000, 80_000_000] with InterpreterPoolExecutor() as executor: futures = [ executor.submit(heavy_calc, size) for size in tasks ] results = [f.result() for f in futures] print(results)
GitHub
github.com › python › cpython › issues › 143280
InterpreterPoolExecutor raises NotShareableError for numpy array · Issue #143280 · python/cpython
December 30, 2025 - import numpy as np from operator import pos as identity # pickle-able "identity" function from concurrent.futures import InterpreterPoolExecutor, ProcessPoolExecutor arr = np.array(range(10)) with InterpreterPoolExecutor() as executor: result = executor.submit(identity, arr).result() # ^-- raises NotShareableError: args not shareable assert np.all(arr == result)
Author Dunes
TechNetExperts
technetexperts.com › home › python interpreterpoolexecutor vs processpoolexecutor [solved]
Python InterpreterPoolExecutor vs ProcessPoolExecutor [Solved]
December 27, 2025 - Python 3.14's new InterpreterPoolExecutor offers a lightweight alternative to ProcessPoolExecutor by using sub-interpreters instead of separate processes. This results in faster startup times and reduced memory overhead for parallel CPU-bound tasks.
GitHub
github.com › python › cpython › issues › 136380
Inconsistent import behavior when concurrent.futures.InterpreterPoolExecutor not exist · Issue #136380 · python/cpython
July 7, 2025 - Bug report Bug description: When the _interpreters module which under the hood to implement InterpreterPoolExecutor does not exist, import concurrent.futures.InterpreterPoolExecutor will result Non...
Author aisk
GitHub
github.com › python › cpython › issues › 126714
InterpreterPoolExecutor workers do not inherit modifications made to sys.path before starting. · Issue #126714 · python/cpython
November 12, 2024 - """ # Unlike all other executors, the InterpreterPoolExecutor does not # automatically inherit the parent process's sys.path. This is a # workaround to ensure that the worker has the same sys.path as the # parent process or tests will fail.
Author TkTech
GitHub
github.com › python › cpython › pull › 124548
gh-124694: Add concurrent.futures.InterpreterPoolExecutor by ericsnowcurrently · Pull Request #124548 · python/cpython
This is an implementation of InterpreterPoolExecutor that builds on ThreadPoolExecutor. This assumes that we're okay adding the executor separately from PEP 734. That PEP is about adding a new...
Author python
GitHub
github.com › python › cpython › issues › 125865
InterpreterPoolExecutor Raises Attribute Error on Lambdas · Issue #125865 · python/cpython
October 23, 2024 - from concurrent.futures.interpreter import InterpreterPoolExecutor with InterpreterPoolExecutor() as executor: future = executor.submit(lambda x: 10) result = future.result() print(result)
Published Oct 23, 2024
GitHub
github.com › python › cpython › issues › 136659
InterpreterPoolExecutor Failure When `__name__ == '__main__'`: Idiom Not Used · Issue #136659 · python/cpython
July 14, 2025 - import concurrent.futures from concurrent.futures import InterpreterPoolExecutor, ThreadPoolExecutor def fib(n): if n < 2: return n return fib(n-1) + fib(n-2) with InterpreterPoolExecutor(max_workers=5) as executor: futures = {executor.submit(fib, n): n for n in range(10)} for future in concurrent.futures.as_completed(futures): n = futures[future] data = future.result() print(f"fib({n}): {data}")
Author ericsnowcurrently
GitHub
github.com › python › cpython › issues › 124694
Add concurrent.futures.InterpreterPoolExecutor · Issue #124694 · python/cpython
September 27, 2024 - Feature or enhancement Proposal: While we wait on PEP 734, there's nothing blocking us from adding a new executor for multiple interpreters. Doing so would allow people to start trying them out. (I wish I had thought of this for 3.13!) M...
Author ericsnowcurrently
Iscinumpy
iscinumpy.dev › home › python π
Python π - - ISciNumPy.dev
October 7, 2025 - import concurrent.futures import random import statistics def pi(trials: int) -> float: Ncirc = 0 for _ in range(trials): x = random.uniform(-1, 1) y = random.uniform(-1, 1) if x * x + y * y <= 1: Ncirc += 1 return 4.0 * (Ncirc / trials) def pi_in_threads(threads: int, trials: int) -> float: if threads == 0: return pi(trials) with InterpreterPoolExecutor(max_workers=threads) as executor: return statistics.mean(executor.map(pi, [trials // threads] * threads))