[英]Is this code safe with python threading module?
my.txt 文件是否總是包含 100 行? 此代碼是否保證沒有數據丟失?
import threading
import os
class Worker(threading.Thread):
def __init__(self, name):
super().__init__()
self.name = name
def run(self):
os.system("echo {} >> my.txt".format(self.name))
for i in range(100):
name = "thread {}".format(i)
t = Worker(name)
t.start()
您正在使用>>
進行 shell 重定向。 這將以 append 模式打開文件,並且操作系統保證在該模式下所有數據都寫入文件末尾,因此不會丟失任何數據。 然而,當寫入大量數據時,來自不同來源的行可能會以不可預知的方式混合在一起。
並不是真的需要為您編寫的每一行啟動一個新的 shell。 您可以使用with open("my.txt", "a") as f: ...
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.