问题1:
tornado.httpserver是一个非阻塞的http服务器。是否有阻止http服务器?
问题2:
异步是否总是意味着非阻塞?同步总是意味着阻塞吗?
问题3:
tornado.curl_httpclient和tornado.simple_httpclient都是非阻塞的,又名异步的吗?
答案 0 :(得分:1)
问题1:是的,Flask和Django以及SimpleHTTPServer用Python编写的其他多线程HTTP服务器是"阻塞"。如果编写使用其中一个服务器来实现HTTP服务器应用程序的代码,则代码将不会使用" yield"或"等待"或回调以实现其逻辑。
问题2:学生会说"同步"和"阻止"是不同的,并且"异步"和"非阻塞"是不同的。我希望他们中的一些人能够回答这个问题。但是,它们实际上是可以互换的想法:同步和阻塞是同义词,异步和非阻塞是同义词。
问题3:正如文档所说,tornado.simple_httpclient.AsyncHTTPClient
is non-blocking和CurlHTTPClient一样。我建议you read Tornado's docs about async,它包括同步和异步的定义,以及同步和异步HTTP客户端的代码示例。