為什麼需要非同步程式設計

Posted by on | |
ASP.NET 會使用 Common Language Runtime (CLR) 執行緒集區中的執行緒來處理要求。
一旦執行緒集區呈現飽和狀態 (也就是說,其中的所有執行緒都在忙著處理要求,沒有可用的其餘執行緒),
對新的要求回應「辦不到」。

解決方案:
  1. 就是增加執行緒集區的大小上限,以便建立更多的執行緒。
  2. 另一個常見的做法就是投入更多的硬體,亦即在 Web 伺服陣列中加入更多的伺服器。
  3. 非同步程式設計。

真正可擴充的 ASP.NET 網站能夠對執行緒集區做最佳的利用,而不是在等待 I/O 完成。
如果執行緒集區是因為所有執行緒都已經在 CPU 上持續運作而呈現飽和狀態,您才需要新增伺服器。


ASP.NET 支援三個非同步程式設計模型:
  1. 非同步網頁
  2. 非同步 HTTP 處理常式
  3. 非同步 HTTP 模組

請參考http://msdn.microsoft.com/zh-tw/magazine/cc163463.aspx

0 意見: