【发布时间】:2016-12-12 09:06:06
【问题描述】:
我正在尝试创建一个本质上是这样工作的程序:
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 上运行。
【问题讨论】:
标签: python-3.4 python-multiprocessing raspberry-pi3