2016-11-17 46 views
0

問題1:一些與龍捲風httpserver和httpclient相關的問題

tornado.httpserver是一個非阻塞http服務器。有沒有阻止http服務器?

問題2:

是否異步總是意味着非阻塞?同步總是意味着阻塞?

問題3:

是tornado.curl_httpclient和tornado.simple_httpclient都無阻塞,又名,異步?

回答

1

問題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客戶端的代碼示例。