Выбор зависит от нагрузки: для ожидания I/O подходят ограниченные потоки или async, для CPU-bound обработки — процессы либо библиотека, умеющая параллельно вычислять без общего GIL.
Если мы хотим несколько файлов обработать параллельно, что лучше использовать?
Выбор зависит от нагрузки: для ожидания I/O подходят ограниченные потоки или async, для CPU-bound обработки — процессы либо библиотека, умеющая параллельно вычислять без общего GIL.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Выбор зависит от нагрузки: для ожидания I/O подходят ограниченные потоки или async, для CPU-bound обработки — процессы либо библиотека, умеющая параллельно вычислять без общего GIL.
Не запускайте по worker на каждый файл без лимита. Учтите память, конкуренцию за диск, сериализацию данных и порядок результатов. Для больших файлов используйте потоковую обработку, а ошибки и повторные попытки фиксируйте отдельно по файлам.