我是新来的Python中的多线程,我目前正在编写附加到csv文件的脚本。如果我有多个线程提交到一个concurrent.futures.ThreadPoolExecutor
,将行添加到csv文件。如果追加是这些线程唯一的文件相关操作,我该怎么做才能保证线程安全?多个线程在Python中写入相同的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()))
我应该设立一个单独的单线程执行来处理文字还是woth担心如果我只是追加?
编辑:我要阐述的是,当写操作发生时可以当文件被下一个追加到分钟之间有很大不同,我只是担心,没有发生这种情况下测试我的剧本的时候,我宁愿被覆盖为了那个原因。
你也许可以做一个线程'csvwriter'使用的一个技巧在[这个答案](http://stackoverflow.com/a/13618333/355230)中提到的相关问题。 – martineau