[进程中的python无限循环会导致kivy实例泛滥

问题描述 投票:-1回答:1

我有一个奇异的应用程序,它使用多重处理来产生具有无限循环的进程。

该代码在ubuntu上运行良好-因为linux使用fork作为默认值-。问题在于,在Windows OS中,默认情况下会生成代码,因此在每次迭代中,该过程都会从头开始遍历代码,从而创建无限的kivy GUI实例。

我该如何解决这个问题?这就是我开始过程的方式:

def f(x):
    while True:
        print(x)

if __name__ == '__main__':
    p = Process(target=f, args=('bob',))
    p.start()

注意:由于函数永无止境,所以我不使用p.join()。

python multiprocessing kivy fork spawn
1个回答
0
投票

问题由this kivy issue log解决

摘要

在Windows(不是Linux)上发布,使用multiprocessing.Manager时,kivy将反复创建一个新窗口

解决方案>>

[[添加冻结支持](https://docs.python.org/2/library/multiprocessing.html#multiprocessing.freeze_support),然后开始多个处理

示例

if __name__ == '__main__':
    freeze_support()
    Process(target=f).start()
© www.soinside.com 2019 - 2024. All rights reserved.