以同步方式写入python中的文件

时间:2018-06-22 06:01:52

标签: python multithreading

我在python中使用线程如下:

ls = ...# a list
with concurrent.futures.ThreadPoolExecutor(max_workers=4) as executor:
    for e in ls:
        th = classB(e)
        executor.submit(th)

因此,每个classB都会计算一个字符串列表。我需要将此计算列表写入文件。那么如何访问文件而不会出现错误,因为所有线程都会写入该文件。

我做到了:

while not queue.empty():
    ls = q.get()
    file_object  = open(self.fileName,  "w")
    for p in ls:
      file_object.write(path + "\n")
      file_object.close()
      q.task_done()

,在classB中,当我计算列表时,我做了:

q.put(self.finalList)

问题是我的文件中只有一个结果

我该怎么做更正确?

0 个答案:

没有答案