龙卷风未来如何运作?

时间:2018-02-05 07:30:16

标签: python asynchronous callback tornado

  
      
  1. 我正在龙卷风中写一个网络服务器,我想知道tornado.concurrent.Future是如何工作的?我见过这个例子   AsyncHTTPClient()但是如果我想让自己的函数有一些   一些IO操作执行就像从memcache中获取值一样   我让它异步工作?

  2.   
  3. 当我使用websocket.WebSocketHandler时,函数调用write_message()阻塞服务器?我的代码如下所示:

  4.   
 `class SocketHandler(websocket.WebSocketHandler):  
     @gen.coroutine     
     def getMemcVal(self):      
         self.write_message("some test value")`
  
      
  1. 未来与回调有何不同?
  2.   

1 个答案:

答案 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相同。这只是一种语法糖。