У меня есть сценарий, который использует много автоматизации без головы Selenium и зацикленных HTTP-запросов.Для этого сценария очень важно реализовать очередь потоков / рабочих потоков.Я сделал это.
Мой вопрос: должен ли я использовать многопоточность или многопроцессность?Поток или ProcessPool?Я знаю, что:
"Если ваша программа тратит больше времени на чтение файлов, сетевые запросы или какие-либо задачи ввода-вывода, то это узкое место ввода-вывода, и вам следует обратить внимание наиспользуя потоки, чтобы ускорить его. "
и ...
" Если ваша программа тратит больше времени на задачи, основанные на ЦП, на большие наборы данных, то это узкое место ЦПВ этом сценарии вам может быть лучше использовать несколько процессов для ускорения вашей программы. Я говорю, что возможно, поскольку однопоточная программа Python может быть быстрее для проблем, связанных с процессором, это может зависеть от неизвестных факторов, таких какразмер поставленной задачи и т. д. "
В каком случае речь идет о Selenium?Правильно ли я считаю, что все связанные с процессором задачи, связанные с Selenium, будут выполняться отдельно через веб-драйвер, или мой сценарий получит выгоду от нескольких процессов?
Или, если быть более кратким: когда я выполняю потоки Selenium в своем сценарии, веб-драйвер ограничен одним ядром процессора, тем же ядром, на котором работают потоки скриптов?