Python 多处理:进程无法启动

2023-12-14

我是新来的multiprocessing在Python(2.7)中。

我尝试运行以下代码:

from time import sleep
from multiprocessing import Process
import multiprocessing

def func(x):
    print("start %s"%(x))
    sleep(x)
    print("end %s"%(x))
    return

if __name__ == '__main__':

    Process(target=func(10)).start()
    Process(target=func(1)).start()

这返回如下:

start 10
end 10
start 1
end 1

While start 1 and end 1先验应该出现在end 10.

我希望能帮助您了解我在这里可能缺少的内容。


你写:

Process(target=func(10)).start()

这意味着Process从未被给予func,给定的结果func(10)自从Pythonfirst从左到右计算参数,然后将这些计算的结果传递给外部函数(这里是Process(..) call).

为了让子进程评估函数,你应该这样写:

Process(target=func,args=(10,)).start()

现在你通过一个参考func功能,并且您提供参数元组args子进程将用它来调用该函数。然后子进程将调用func(10)本身(另一个子进程将almost同时做同样的事情func(1)).

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python 多处理:进程无法启动 的相关文章

随机推荐