2011-06-22 42 views

回答

0

.NET線程池本質上是一個線程池,可以共享這些線程來執行任務,處理異步I/O並提供計時器。池中的「對象」是.NET線程,這些都是使用Windows線程實現的。所以當線程池在線程上執行任務時,它會在Windows線程上執行。

通常一個進程將包含多個線程,其中一些線程可能屬於線程池。當這些線程同時執行時,Windows調度程序負責通過使用上下文切換來調度要在CPU核上執行的線程。

.NET 4線程池不調度正在執行的線程。但是,在線程池中排隊工作的任務最終將被分配給線程池中的一個線程。當任務完成時(這可能需要1毫秒或1年),線程被回收到線程池。線程池可以擴展和收縮以優化系統資源的使用方式。

您可以閱讀有關對.NET 4.0線程池進行了哪些改進的博客條目:ThreadPool Improvements by Eric Eilebrecht

+0

昨天晚上我讀到了這個消息,但是如果窗口調度程序仍然在控制中,我還是不清楚 –

+0

因此,這意味着無論在.net 4中對線程池做了哪些更改,它仍然依賴於Windows調度程序來執行做得好? –