2013-03-24 53 views
14

我在尋找一個類比,它可以幫助我理解基於線程的服務器如何處理http請求以及基於事件的服務器如何處理http請求。假設服務器是建築物中的商店,端口80是商店的前門,並且http請求是剛剛走進前門的客戶。接下來發生什麼?商店如何處理客戶?該店如何處理多個顧客,以及顧客離店的速度有多大?基於線程的服務器和基於事件的服務器有什麼區別?

總之,我正在尋找一種解釋,如物理,現實世界的比喻中的'事件循環'和'線程','阻塞'和'非阻塞'。

回答

21

在基於線程的服務器比喻中,每個客戶都由自己的店員配送。當顧客離開時,店員可以幫助另一個顧客。可以同時幫助的員工數量與商店員工數量直接相關。

在基於事件的服務器比喻中,可能有多個客戶服務於一個店員 - 讓我們稱他爲Bob。 Bob將可能需要一段時間的各種步驟(例如「在後面的房間」中找到我的項目x)委託給其他店員工。當Bob要求助手尋求幫助時,助手趕到了店裏的其他地方,而Bob可以繼續幫助其他客戶,而原先的顧客等待助手回到Bob身邊。當助手返回時,完成任務後,他們將等待Bob與Bob的當前客戶達到一個良好的停靠點,然後Bob可以再次與助手和原始客戶談話。

+0

鮑勃是他們稱之爲事件循環的東西嗎? – 2013-03-24 20:55:49

+0

非常多,但不完全。 – 2013-03-24 21:07:11

相關問題