gpt4 book ai didi

python - 为什么当我使用多处理模块时我的程序无法运行

转载 作者:行者123 更新时间:2023-12-01 02:34:30 25 4
gpt4 key购买 nike

我正在尝试学习多处理模块,我从互联网上找到了一些示例代码。代码相同但结果不同。请帮忙 why my subprogram doesn't work ?

最佳答案

我可以重现您的问题的唯一方法是将进程设置为守护进程:

p1 = Process(target=piao, args=('a',))
p2 = Process(target=piao, args=('b',))
p3 = Process(target=piao, args=('c',))

p1.daemon = True
p2.daemon = True
p3.daemon = True

p1.start()
p2.start()
p3.start()

守护进程线程将继续运行,而不会阻止主程序退出。在我的系统上,Python (2.X) daemon 默认为 False。但根据3.X文档

If provided, the keyword-only daemon argument sets the process daemon flag to True or False. If None (the default), this flag will be inherited from the creating process.

这意味着 Windows 上的 Python Shell 可以在没有明确指定的情况下将进程作为守护进程运行。

要更改此设置,请将标志设置为 false:

p1.daemon = False
p2.daemon = False
p3.daemon = False

这必须在调用 start 之前完成,但对于 Python 3.6,可以在调用 Process 对象的命令中完成(请参阅 this )。

或者使用加入:

p1.daemon = True
p2.daemon = True
p3.daemon = True

p1.start()
p2.start()
p3.start()

p1.join()
p2.join()
p3.join()

print "done"

关于python - 为什么当我使用多处理模块时我的程序无法运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46416443/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com