我正在龙卷风中写一个网络服务器,我想知道tornado.concurrent.Future是如何工作的?我见过这个例子 AsyncHTTPClient()但是如果我想让自己的函数有一些 一些IO操作执行就像从memcache中获取值一样 我让它异步工作?
- 醇>
当我使用websocket.WebSocketHandler时,函数调用write_message()阻塞服务器?我的代码如下所示:
`class SocketHandler(websocket.WebSocketHandler):
@gen.coroutine
def getMemcVal(self):
self.write_message("some test value")`
- 未来与回调有何不同?
醇>
答案 0 :(得分:0)
关于async & await
如何运作的示例:
# python
async def example():
response = await request.get(“http://www.google.com”)
result = await response.read()
print(result)
等于nodejs中的callback
:
function example() {
request.get(“http://www.google.com”, function (response){
response.read(function (result) {
console.log(result)
})
})
}
那么Future
是什么?这是一个抽象的概念。您认为异步函数是一个对象,然后您认为event loop
正在调度多个对象,例如通过识别await
来调度多个线程。
但内心真实的是什么?与callback
相同。这只是一种语法糖。