Несколько потоков, пишущих в один и тот же CSV в Python
Я новичок в многопоточности в Python и в настоящее время пишу скрипт, который добавляется в CSV-файл. Если бы я должен был иметь несколько тем, представленных наconcurrent.futures.ThreadPoolExecutor
который добавляет строки в CSV-файл. Что я мог сделать, чтобы гарантировать безопасность потока, если добавление было единственной связанной с файлом операцией, выполняемой этими потоками?
Упрощенная версия моего кода:
with concurrent.futures.ThreadPoolExecutor(max_workers=3) as executor:
for count,ad_id in enumerate(advertisers):
downloadFutures.append(executor.submit(downloadThread, arguments.....))
time.sleep(random.randint(1,3))
И мой класс темы:
def downloadThread(arguments......):
#Some code.....
writer.writerow(re.split(',', line.decode()))
Должен ли я настроить отдельный однопоточный исполнитель для обработки письма или стоит ли беспокоиться о том, что я только добавляю?
РЕДАКТИРОВАТЬ: я должен уточнить, что когда операции записи могут сильно различаться в течение нескольких минут между тем, когда файл добавляется в следующий раз, я просто обеспокоен тем, что этот сценарий не происходил при тестировании моего сценария, и я предпочел бы быть покрыт для этого.