0
我試圖創建一個程序,它在它的本質是這樣的:使用worker.run()進行多處理可以在系列中工作而不是並行嗎?
import multiprocessing
import time
def worker(numbers):
print(numbers)
time.sleep(2)
return
if __name__ =='__main__':
multiprocessing.set_start_method("spawn")
p1 = multiprocessing.Process(target=worker, args=([0,1,2,3,4],))
p2 = multiprocessing.Process(target=worker, args=([5,6,7,8],))
p1.start()
p2.start()
p1.join()
p2.join()
while(1):
p1.run()
p2.run()
p1.join()
p2.join()
print('Done!')
第一次的過程是通過p#.start()
叫,它們並行執行。第二次通過p#.run()
方法調用它們時,它們將被串行執行。
如何確保後續的方法調用也是並行執行的?
編輯:過程一起開始很重要。不會發生進程1被執行兩次而進程2只被執行一次的情況。
編輯:我也應該注意到,此代碼對樹莓派V3模型B.
所以你的意思是你可以開始一次過程,並行運行。如果你想再次並行執行,你需要終止並創建一個新進程,或者把進程放到一個等待新輸入的循環中? – Etruscian
是的,你明白了。 – skyblue0715