我是 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()))
我是否应该设置一个独立的单线程执行器来处理写入,或者如果我只是追加内容,是否值得担心?
编辑:我应该详细说明一下,写入操作发生的时间可能会有很大的变化,文件下一次被追加的时间可能相隔几分钟。我只是担心在测试我的脚本时没有出现这种情况,我希望能够覆盖到。
csvwriter
,该答案与相关问题有关。 - martineau