【发布时间】:2024-01-21 04:48:01
【问题描述】:
我在做一些实际上应该很简单的事情时有点挣扎。我有一个函数可以进行一些长时间的计算,为了简化它,如下所示:
import time
def compute_stuff(number):
time.sleep(10)
return [number*2, number*4]
我想并行运行此函数的两个实例并将它们的结果收集到一个数组中。我读过一些关于 Twisted reactor 的文章,它似乎提供异步查询,但是在一个线程中运行所有内容,所以当我这样做时:
from twisted.internet import reactor
import time
def compute_stuff(number):
time.sleep(10)
return [number*2, number*4]
reactor.callWhenRunning(compute_stuff, 1)
reactor.callWhenRunning(compute_stuff, 4)
reactor.callWhenRunning(compute_stuff, 2)
reactor.run()
它会等待第一个调用完成,然后再执行下一个调用。有没有办法让它平行? Twisted 是不是该走的路?
【问题讨论】:
标签: python concurrency twisted reactor