gpt4 book ai didi

python - Python 中的递归函数中的多线程

转载 作者:行者123 更新时间:2023-11-30 23:38:26 37 4
gpt4 key购买 nike

我有一个递归调用自身的函数。这是一个例子:

def f(a,b=0):
if b < 5:
for i in range(10):
a += f(a+i,b+1)
return a+b

print f(3)

现在我想在函数内部同时运行 10 个函数调用,每个函数调用都在一个单独的线程中同时运行,但同时从一个变量中获取所有函数的返回值。

有人能引导我走向正确的方向吗?

最佳答案

尝试更精确地思考您希望多线程如何工作。

您提出问题的方式表明您希望为每个递归函数调用生成 10 个线程。这意味着在单级递归之后,您将拥有 100 个线程,在 2 级递归之后,您将拥有 1000 个线程,依此类推。这可能不是您想要的,除非您试图卡住操作系统。

两种替代方案包括:

  1. 仅在第一次调用时生成线程,但不在递归调用时生成线程,或者
  2. 创建一个线程池并使用work queue .

另一种方法是考虑函数正在执行的数学运算并对其进行分析简化以避免循环和/或递归。

关于python - Python 中的递归函数中的多线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14541179/

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