在同步模型中,當客戶端連接到服務器時,客戶端和服務器都必須相互同步才能完成某些操作。Web服務器中的前攝器模式和同步模式之間的差異
同時,異步模型允許客戶端和服務器獨立工作。客戶端發送建立連接的請求並執行某些操作。當服務器處理請求時,客戶端可以做其他事情。完成一個操作後,完成事件被放置到事件解複用器的一個隊列中,等待Proactor(例如HTTP Handler)發回請求並調用一個完成處理器(在客戶端上)。這些術語在boost :: asio文件The Proactor Design Pattern: Concurrency Without Threads中使用。
通過這種方式,異步模型可以接受同時連接,而無需爲每個連接創建線程,從而提高整體性能。爲了達到與異步模型相同的效果,第一個模型(同步)必須是多線程的。有關更多詳細信息,請參考:Proactor Pattern(我實際上學習了用於異步模型的proactor模式,在這裏它描述了一個典型的同步I/O Web服務器)。
我對這個問題的理解是否正確?如果是這樣,這意味着異步服務器可以異步接受請求並返回結果(第一個連接請求Web服務器上的服務不需要首先回復)?本質上,異步模型不使用線程(或線程用於單個組件,例如Proactor,Asynchronous Event Multiplexer(boost :: asio document)組件),而不是創建整個客戶端 - 服務器應用程序堆棧,在Proactor Pattern文檔的多線程模型中,第2.2節 - 常規併發模型的常見陷阱和陷阱)。
我不清楚你在問什麼。 –