gh-124694: Add concurrent.futures.InterpreterPoolExecutor (gh-124548)

This is an implementation of InterpreterPoolExecutor that builds on ThreadPoolExecutor.

(Note that this is not tied to PEP 734, which is strictly about adding a new stdlib module.)

Possible future improvements:

* support passing a script for the initializer or to submit()
* support passing (most) arbitrary functions without pickling
* support passing closures
* optionally exec functions against __main__ instead of the their original module
This commit is contained in:
Eric Snow 2024-10-16 16:50:46 -06:00 committed by GitHub
parent a38fef4439
commit a5a7f5e16d
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
12 changed files with 828 additions and 40 deletions

View file

@ -0,0 +1,6 @@
We've added :class:`concurrent.futures.InterpreterPoolExecutor`, which
allows you to run code in multiple isolated interpreters. This allows you
to circumvent the limitations of CPU-bound threads (due to the GIL). Patch
by Eric Snow.
This addition is unrelated to :pep:`734`.