【发布时间】:2022-06-20 09:14:20
【问题描述】:
我正在尝试了解 ProcessPoolExecutor 的工作原理。我尝试了以下代码,但收到错误:
AttributeError Traceback(最近一次调用最后一次) 在 18 p10=过程提交(等待,1) 19 ---> 20 Proc.join() 21 过程关闭() 22
AttributeError: 'ProcessPoolExecutor' 对象没有属性 'join'
这就是我想要做的,我希望能够在流程执行完成后运行打印语句。关于我所缺少的任何想法
def wait(n):
print(f"waiting for {n} second(s)")
time.sleep(n)
return("sleeping over")
t5=time.time()
if __name__=='__main__':
Proc=ProcessPoolExecutor(10)
p1=Proc.submit(wait,2)
p2=Proc.submit(wait,1)
p3=Proc.submit(wait,2)
p4=Proc.submit(wait,1)
p5=Proc.submit(wait,2)
p6=Proc.submit(wait,1)
p7=Proc.submit(wait,2)
p8=Proc.submit(wait,1)
p9=Proc.submit(wait,2)
p10=Proc.submit(wait,1)
Proc.join()
Proc.close()
print(p1.result())
print(p2.result())
print(p3.result())
print(p4.result())
print(p5.result())
print(p6.result())
print(p7.result())
print(p8.result())
print(p9.result())
print(p10.result())
t6=time.time()
print("Time taken to run this code block is",t6-t5)
【问题讨论】:
标签: python-3.x multiprocessing