Обычно проще сделать несколько параллельных процессов. Просто используйте подпроцесс, чтобы создать столько Popens, сколько вы считаете необходимым для одновременной работы.
Там нет «оптимального» числа. Обычно, когда вы запускаете только один сканер, ваш компьютер тратит много времени на ожидание. Сколько? Трудно сказать.
Когда вы используете небольшое количество одновременно работающих сканеров, вы увидите, что они занимают примерно столько же времени, сколько и один. Ваш ЦП переключается между различными процессами, заполняя время ожидания одного из них работой других.
Если вы наберете какое-то большее число, вы увидите, что общее истекшее время больше, потому что теперь есть больше дел, чем может справиться ваш ЦП. Таким образом, общий процесс занимает больше времени.
Вы можете создать график, который показывает, как масштабируется процесс. Исходя из этого, вы можете сбалансировать количество процессов и желаемое время.
Думайте об этом так.
1 сканер выполняет свою работу за 1 минуту. 100 страниц, выполненных последовательно, могут занять 100 минут. 100 сканеров одновременно могут занять час. Допустим, 25 сканеров заканчивают работу за 50 минут.
Вы не знаете, что оптимально, пока не запустите различные комбинации и не сравните результаты.