Прошу дать совет по следующему вопросу:
У меня есть программа (написана на freepascal), хочу переписать ее на Python. Суть программы сканить папки на наличие файлов с нужным расширением, их разборе и импорте в БД. Она работает упрощенно так:
1) Находим файл.
2) Обрабатываем.
3) Перемещаем.
4) Ищем следующий файл.
Я задумался над оптимизацией, а точнее, чтобы обрабатывать по 5 (например) файлов параллельно (независимо).
Я понимаю, что можно запустить нити(multi-threads) или (multi-processing), которые будут работать независимо…
Но как они могут между собой взаимодействовать и понимать кому какой файл? Каким образом можно это осуществить?
P.S. Первое, что приходит в голову - это использовать threads и глобальный список уже обрабатывающихся файлов. То есть поток находит файл, проверяет есть ли он в списке. Если есть, то ищет дальше, если нет, то добавляет его в список и начинает разбирать, а после разбора удалять из списка. Но… терзают сомнения.