gpt4 book ai didi

python - 简化Python中的线程

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

我正在寻找一种方法来简化我的线程代码。

我的代码中有很多地方我做了类似的事情:

for arg in array:
t=Thread(lambda:myFunction(arg))
t.start()

即在线程中运行相同的函数,每次使用不同的参数。

这当然是真实代码的简化版本,通常 for 循环内的代码大约有 10-20 行长,不能通过使用像 这样的辅助函数来简化它code>myFunction 在上面的例子中(如果是这样的话,我可以只使用线程池)。

此外,这种情况在我的代码中非常非常常见,因此有大量的行我认为是多余的。如果我不需要处理所有这些样板代码,而是能够执行以下操作,这将对我有很大帮助:

for arg in array:
with threaded():
myFunction(arg)

即以某种方式threaded()获取其中的每一行代码并在单独的线程中运行它。

我知道上下文管理器不应该在这种情况下使用,这可能是一个坏主意,并且需要一个丑陋的黑客,但尽管如此 - 可以做到吗?

最佳答案

这个怎么样:

for arg in array:
def _thread():
# code here
print arg

t = Thread(_thread)
t.start()

此外,使用装饰器,你可以给它加点糖:

def spawn_thread(func):
t = Thread(func)
t.start()
return t

for arg in array:
@spawn_thread
def _thread():
# code here
print arg

关于python - 简化Python中的线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3123876/

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