我是新來的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