异步方法调用Python?

问题:

我想知道在Python中是否有异步方法调用的库。如果你能做一些事情会是很棒的

@async
def longComputation():
    



token = longComputation()
token.registerCallback(callback_function)
# alternative, polling
while not token.finished():
    doSomethingElse()
    if token.finished():
        result = token.result()

或者异步调用非异步例程

def longComputation()
    


token = asynccall(longComputation())

在语言核心中有一个更精致的策略是本土的,这将是巨大的。这是考虑到的吗?

回答:

您可以使用Python 2.6中添加的multiprocessing module。您可以使用流程池,然后异步获取结果:

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.

这只是一个选择。该模块提供了许多设施来实现您想要的。此外,这样做也是很容易的。

 
 
Code问答: http://codewenda.com/topics/python/
Stackoverflow: Asynchronous method call in Python?

*转载请注明本文链接以及stackoverflow的英文链接

发表评论

电子邮件地址不会被公开。 必填项已用*标注

62 − 54 =