使异步调用看起来同步的最佳方法是什么?例如,类似这样,但是如何协调调用线程和异步应答线程呢?在java中,我可能使用带超时的CountdownLatch(),但我找不到Python的明确解决方案
def getDataFromAsyncSource():
asyncService.subscribe(callback=functionToCallbackTo)
# wait for data
return dataReturned
def functionToCallbackTo(data):
dataReturned = data
你可以使用一个模块
查看本文中的示例代码和模块下载链接:Concurrent Tasks Execution in Python
您可以将executor结果放在将来,然后获取它们,下面是http://pypi.python.org中的示例代码:
^{pr2}$一个常见的解决方案是使用synchronized
Queue
并将其传递给回调函数。见http://docs.python.org/library/queue.html。在因此,对于您的示例,这可能看起来像(我只是猜测API将向回调函数传递其他参数):
这是一个在内部使用
threading
模块的解决方案,因此根据您的异步库,它可能无法工作。在相关问题 更多 >
编程相关推荐