我試圖從2個文件多核讀取數據,但執行此代碼後list1
和list2
是空的。多進程從文件讀取
from multiprocessing import Process
def getfile(fn, out):
print("start reading file {}".format(fn))
with open(fn) as file:
for line in file:
out.append(line)
if __name__ == '__main__':
file1 = []
file2 = []
p1 = Process(target=getfile, args=("100.txt", file1))
p2 = Process(target=getfile, args=("98.txt", file2))
p1.start()
p2.start()
p1.join()
p2.join()
print(file1)
print(file2)
如何從文件獲取寫入數據列表或使用多處理可迭代的東西?
看看[這個](https://stackoverflow.com/a/29050564/6111440) –
如果你爲了性能的目的而試圖做到這一點,你需要知道如果兩個文件都駐留在同一物理旋轉磁盤同時讀取它們都不能使整體讀取時間更快,事實上可能會使磁盤讀取速度變慢,因爲磁盤磁頭可能會做額外的搜索。 –