gpt4 book ai didi

Python多处理无限循环

转载 作者:太空宇宙 更新时间:2023-11-04 03:07:24 25 4
gpt4 key购买 nike

我想同时处理一个包含无限循环的函数三次。

我的代码:

import multiprocessing

def worker(numbers):
while True:
print numbers

if __name__ == '__main__':
nums = ["1","2","3"]
for i in nums:
p = multiprocessing.Process(target=worker(i))
p.start()

问题是只循环到“1”

1
1
1
1
1
1
1

最佳答案

根据 rawing 的评论,您不是将函数对象传递给 target 关键字参数,而是直接调用它并传递它的返回值,该值永远不会返回,因为它是一个无限循环。

试试这个:

import multiprocessing

_MAX_ITERATIONS = 10

def worker(numbers):
iteration = 0
while True:
if iteration >= _MAX_ITERATIONS:
break

print(numbers)
iteration += 1

if __name__ == '__main__':
nums = ["1","2","3"]
for i in nums:
p = multiprocessing.Process(target=worker, args=(i,))
p.start()

我只添加了一个 _MAX_ITERATIONS 守卫,以免以其他方式终止进程。

关于Python多处理无限循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39053656/

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