我想知道Python中是否有任何用于异步方法调用的库。如果您可以做这样的事情会很棒@asyncdef longComputation(): <code>token = longComputation()token.registerCallback(callback_function)# alternative, pollingwhile not token.finished(): doSomethingElse() if token.finished(): result = token.result()或异步调用非异步例程def longComputation() <code>token = asynccall(longComputation())在语言核心中拥有更加精致的策略,这将是很棒的。是否考虑过?
3 回答
慕虎7371278
TA贡献1802条经验 获得超4个赞
您可以使用Python 2.6中添加的多处理模块。您可以使用进程池,然后通过以下方式异步获取结果:
apply_async(func[, args[, kwds[, callback]]])
例如:
from multiprocessing import Pool
def f(x):
return x*x
if __name__ == '__main__':
pool = Pool(processes=1) # Start a worker processes.
result = pool.apply_async(f, [10], callback) # Evaluate "f(10)" asynchronously calling callback when finished.
这只是一种选择。该模块提供了许多工具来实现您想要的。同样,用这种方法制作装饰器真的很容易。
添加回答
举报
0/150
提交
取消