«

»

4 月
30

網頁設計-.NET ThreadPool的重大變化_1108





無標題文件

網頁設計-.NET ThreadPool的重大變化-網站設計


網頁寄存

  在.NET 2.0 SP 1隨著.NET 3.5發佈後線程池發生了重大的變化。不過據Michael C. Kennedy發現,並非所有的改變都是最合適的。
  第一個變化是將最大線程數從每處理器25個線程增加至250個線程。這麼做是為了處理線程池中的死鎖,當太多線程等待其他任務結束時就會出現死鎖。一旦所有25個線程都被阻塞的時候,等待中的任務就無法分配到線程了。儘管這個改變無法徹底排除死鎖的可能性,但是發生問題的概率大大減小的。
  另一個改變其實是一個Bug。一般來說.NET會盡快在線程池中分配最少數量的線程,接著每秒鐘創建最多2個線程,直到達到最大線程數量。如果您知道您的應用程序會立即使用大量線程池的線程,您必須提高最小線程數量。
  Michael C. Kennedy發現在.NET 2.0 Service Pack 1中,最少線程數量被忽略了。如果一個應用程序需要大量的線程池的線程,它可能會需要幾秒鐘才能夠完全啟動。
  據Michael C. Kennedy所說,他所聯繫到的微軟員工稱這個問題會在.NET 2.0 SP 2中解決,不過其發佈日期還不確定。
查看英文原文:Breaking Changes in the .NET ThreadPool

web design