0
我正在學習使用多處理庫的python中的多線程。爲此,我試圖創建一個程序,將一個大文件分成幾個小塊。因此,我首先從該文件讀取所有數據,然後創建從該輸入文件獲取一段數據的工作任務,然後將該段寫入文件。我希望有儘可能多的並行線程作爲段數運行,但這不會發生。我看到最多兩個任務,然後程序終止。我在做什麼錯誤。代碼如下。Python的多處理並不是並行創建任務
import multiprocessing
def worker(segment, x):
fname = getFileName(x)
writeToFile(segment, fname)
if __name__ == '__main__':
with open(fname) as f:
lines = f.readlines()
jobs = []
for x in range(0, numberOfSegments):
segment = getSegment(x, lines)
jobs.append(multiprocessing.Process(target=worker, args=(segment, x)))
jobs[len(jobs)-1].start()
for p in jobs:
p.join
僅供參考,你忘了叫'join',因此該方案實際上沒有阻止那些'Process'es明確(它會隱除非它們發生重新守護進程)。 – ShadowRanger
我確實調用了join,請參閱代碼的最後兩行。 – pythonic
您引用了它。你沒有打過電話。 'p.join'與'p.join()'有很大不同。 – ShadowRanger