我有這樣的代碼:爲什麼多進程在目標函數之外運行?
import multiprocessing
with open('pairs.txt') as f:
pairs = f.read().splitlines()
print(pairs)
def worker(pairtxt):
print(pairtxt)
if __name__ == '__main__':
jobs = []
for i in pairs:
p = multiprocessing.Process(target=worker, args=(i,))
jobs.append(p)
p.start()
當我運行這一點,對輸出變量(不pairtxt)3次,我被多一度猜測本身並兩次,但爲什麼它連外運行目標函數?
我輸出我用含2行 「1」 和 「2」 pairs.txt越來越
['1', '2']
['1', '2']
1
['1', '2']
2
你想達到什麼目的?我們不知道什麼是在pairs.txt裏面:) –
對於僅在函數上運行並輸出它們由「for i in pairs」分配的行的過程,它工作正常,但它打印的對意味着過程運行在函數之外,似乎在運行我的整個腳本。在pairs.txt裏面只有兩行簡單單詞。 – gregz11818
我已經使用了pairs = [1,2]並運行代碼,它先打印「1」,然後打印「2」。 –