from multiprocessing.pool import ThreadPool
Весь код приводить не буду. Инициировал 3 экземпляра yandexdriver'а при помощи самопальной функци
stock_of_drivers и сохранил их в переменную
sod.
sod = stock_of_drivers(3)
Создал вместилище для 3 потоков.
pool = ThreadPool(processes=3)
Создал 3 потока, где
get_content - парсер,
chunk - список строк для внесения в диалоговое окно обрабатываемой страницы.
async_result0 = pool.apply_async(get_content, (chunk[0], sod['driver0']))
async_result1 = pool.apply_async(get_content, (chunk[1], sod['driver1']))
async_result2 = pool.apply_async(get_content, (chunk[2], sod['driver2']))
При первом проходе парсинг идет в три потока, но на следующей итерации, если driver'а заново не создать (предыдущие закрыть разумеется), то случится
MaxRetryError. Если заново driver'а создавать, то накладные расходы анулируют всю выгоду мультипоточности, и даже замедляют в сравнении с однопоточной реализацией. Как быть?