Skip to content

bpo-45339: Allow user to specify Thread class for use with ThreadPoolExecutor #28640

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 3 commits into
base: main
Choose a base branch
from

Conversation

erickpeirson
Copy link

@erickpeirson erickpeirson commented Sep 29, 2021

Currently the only way to use a custom thread class with the ThreadPoolExecutor is extend the class and override the private method _adjust_thread_count(), which means reproducing (basically, copying and pasting) the body of that method into application code. This change would allow the thread class to be specified when the ThreadPoolExecutor is instantiated, allowing for more composable use.

I couldn't find anything in https://bugs.python.org covering this particular issue; happy to go back and create one (and beg your forgiveness for jumping the gun).

https://bugs.python.org/issue45339

Currently the only way to use a custom thread class with the ThreadPoolExecutor is extend the class and override the private method _adjust_thread_count(), which means reproducing (basically, copying and pasting) the body of that method into application code. This change would allow the thread class to be specified when the ThreadPoolExecutor is instantiated, allowing for more composable use.
@the-knights-who-say-ni
Copy link

Hello, and thanks for your contribution!

I'm a bot set up to make sure that the project can legally accept this contribution by verifying everyone involved has signed the PSF contributor agreement (CLA).

Recognized GitHub username

We couldn't find a bugs.python.org (b.p.o) account corresponding to the following GitHub usernames:

@erickpeirson

This might be simply due to a missing "GitHub Name" entry in one's b.p.o account settings. This is necessary for legal reasons before we can look at this contribution. Please follow the steps outlined in the CPython devguide to rectify this issue.

You can check yourself to see if the CLA has been received.

Thanks again for the contribution, we look forward to reviewing it!

@FFY00
Copy link
Member

FFY00 commented Sep 30, 2021

Hi @erickpeirson could you open an issue on https://bugs.python.org for discussion? 😊

@erickpeirson
Copy link
Author

Hi @erickpeirson could you open an issue on https://bugs.python.org for discussion? 😊

Done. 😄 https://bugs.python.org/msg403007

@erickpeirson erickpeirson changed the title Allow user to specify Thread class for use with ThreadPoolExecutor bpo-403007: Allow user to specify Thread class for use with ThreadPoolExecutor Oct 1, 2021
@erickpeirson erickpeirson changed the title bpo-403007: Allow user to specify Thread class for use with ThreadPoolExecutor bpo-45339: Allow user to specify Thread class for use with ThreadPoolExecutor Oct 1, 2021
@github-actions
Copy link

github-actions bot commented Nov 1, 2021

This PR is stale because it has been open for 30 days with no activity.

@github-actions github-actions bot added the stale Stale PR or inactive for long period of time. label Nov 1, 2021
Copy link
Member

@JelleZijlstra JelleZijlstra left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This also needs to be documented in the concurrent.futures documentation.

(There are also concerns on the issue about whether we should do this at all, but that should be discussed only on the issue.)

@@ -0,0 +1 @@
Currently the only way to use a custom thread class with the ThreadPoolExecutor is extend the class and override the private method _adjust_thread_count(), which means reproducing (basically, copying and pasting) the body of that method into application code. This change would allow the thread class to be specified when the ThreadPoolExecutor is instantiated, allowing for more composable use.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The NEWS entry should describe the change, not argue for it.

Suggested change
Currently the only way to use a custom thread class with the ThreadPoolExecutor is extend the class and override the private method _adjust_thread_count(), which means reproducing (basically, copying and pasting) the body of that method into application code. This change would allow the thread class to be specified when the ThreadPoolExecutor is instantiated, allowing for more composable use.
Add ``thread_class`` parameter to `:class:concurrent.futures.ThreadPoolExecutor`.

@python-cla-bot
Copy link

python-cla-bot bot commented Apr 18, 2025

All commit authors signed the Contributor License Agreement.

CLA signed

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
awaiting core review stale Stale PR or inactive for long period of time.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants