[英]I can't start two functions at the same time, with multiprocessing Python. Why?
我只想同时启动 2 个功能,但它不起作用,这是我的代码:
from multiprocessing import Process
import time as t
def print1():
print(1)
t.sleep(10)
def print2():
print(1)
t.sleep(10)
if __name__ == '__main__':
p1 = Process(target = print1)
p1.start()
p1.join()
p2 = Process(target = print2)
p2.start()
p2.join()
我在控制台上没有任何问题,但 function 没有同时启动。 怎么了?
从这篇关于如何在 Python 中同时启动所有进程而不是
p1 = Process(target = print1)
p1.start()
p1.join()
p2 = Process(target = print2)
p2.start()
p2.join()
做
p1 = Process(target = print1)
p2 = Process(target = print2)
p1.start()
p2.start()
p1.join()
p2.join()
然后在它之后运行另一个 function,你可以这样做
p1 = Process(target = print1)
p2 = Process(target = print2)
p3 = Process(target = print3)
p1.start()
p2.start()
p1.join()
p2.join()
p3.start()
p3.join()
因为您正在使用.join()
。 根据文档:
如果可选参数 timeout 为 None(默认值),则该方法会阻塞,直到调用其 join() 方法的进程终止。 如果超时为正数,则最多阻塞超时秒数。 请注意,如果其进程终止或方法超时,该方法将返回 None。 检查进程的退出代码以确定它是否终止。
因此,通过调用.join()
,您正在使进程阻塞直到它终止。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.