Python concurrent.futures.ThreadPoolExecutor max_workers - PullRequest
0 голосов
/ 20 ноября 2018

Долго ищу в сети.Но бесполезно.Пожалуйста, помогите или попробуйте дать мне несколько идей, как этого добиться.

Когда я использую модуль Python concurrent.futures.ThreadPoolExecutor(max_workers=None), я хочу узнать max_workers, сколько подходит число.

Я прочитал официальный документ.Я до сих пор не знаю количество подходящих при кодировании.

Изменено в версии 3.5: если max_worker имеет значение None или не дает, по умолчанию будет установлено число процессоров на машине, умноженное на5, предполагая, что ThreadPoolExecutor часто используется для перекрытия операций ввода-вывода вместо работы ЦП, а число рабочих должно быть больше, чем число рабочих для ProcessPoolExecutor.

Как понять "max_workers""лучше?

Впервые задаю вопросы, большое спасибо.

1 Ответ

0 голосов
/ 20 ноября 2018

max_worker, вы можете принять его за номер потока.

Если вы хотите использовать лучшие процессоры, вы должны держать его работающим (а не спящим).

В идеале, еслиВы устанавливаете его на None, максимум будет (CPU номер * 5) потоков.В среднем у echo CPU есть 5 потоков для планирования.Затем, если один из них засыпает, будет запланирован другой поток.

...