問題1:一些與龍捲風httpserver和httpclient相關的問題
tornado.httpserver是一個非阻塞http服務器。有沒有阻止http服務器?
問題2:
是否異步總是意味着非阻塞?同步總是意味着阻塞?
問題3:
是tornado.curl_httpclient和tornado.simple_httpclient都無阻塞,又名,異步?
問題1:一些與龍捲風httpserver和httpclient相關的問題
tornado.httpserver是一個非阻塞http服務器。有沒有阻止http服務器?
問題2:
是否異步總是意味着非阻塞?同步總是意味着阻塞?
問題3:
是tornado.curl_httpclient和tornado.simple_httpclient都無阻塞,又名,異步?
問題1:是的,Flask和Django和SimpleHTTPServer以Python編寫的其他多線程HTTP服務器「阻塞」。如果您編寫使用其中一個服務器來實現HTTP服務器應用程序的代碼,那麼您的代碼將不會使用「yield」或「await」或回調來實現其邏輯。
問題2:Pedants會說「同步」和「阻塞」是截然不同的,「異步」和「非阻塞」是截然不同的。我希望其中一些人在回答這個問題時這麼說。但是,它們實際上是可以互換的想法:同步和阻塞是同義詞,異步和非阻塞是同義詞。
問題3:正如文檔所述,tornado.simple_httpclient.AsyncHTTPClient
is non-blocking與CurlHTTPClient一樣。我建議you read Tornado's docs about async,它包括同步和異步的定義,以及同步和異步HTTP客戶端的代碼示例。