web-dev-qa-db-fra.com

Nombre de max_workers lors de l'utilisation de ThreadPoolExecutor à partir de concurrent.futures?

Quels sont les facteurs à prendre en compte lors de la décision de définir max_workers dans ThreadPoolExecutor à partir de concurrent.futures?

Tant que vous pouvez vous attendre à ce que Python 3.5+ soit disponible, y a-t-il une raison de ne pas définir max_workers sur None qui sera alors "par défaut le nombre de processeurs sur la machine, multiplié par 5" comme décrit dans les documents ici? https://docs.python.org/3/library/concurrent.futures.html#concurrent.futures.ThreadPoolExecutor

15
edjohnsonwilliams

Je ne pense pas que cette question puisse être résolue de manière aussi générique; cela dépendra de chaque cas.

De cette réponse :

Plus vous utilisez de threads, plus vous atteindrez la concurrence (jusqu'à un certain point), mais moins vous obtiendrez de cycles CPU (car il y aura des changements de contexte). Vous devez instrumenter votre application sous des charges de travail typiques pour voir ce qui vous convient le mieux. Il n'y a pas de solution universellement optimale pour cela.

2
J0ANMM