我讀Essential C# 5.0它說,我對C#線程池的理解是否正確?
線程池還假定所有的工作會比較 短期運行(也就是,消耗的處理器 時間毫秒或秒,而不是幾小時或幾天) 。通過這樣的假設,它可以確保 每個處理器正在完成一項任務,並且而不是 時間分割多任務。線程池嘗試 通過確保線程創建爲 「節流」並且使得沒有任何一個處理器被太多的線程「過度使用」,從而防止過多的時間分割。
我一直認爲多線程的好處之一是時間切片。
如果您> 1處理器,則可以同時運行線程並實現真正的多線程。但除非是這種情況,否則你不得不求助於時間分片來處理多線程的應用程序嗎?
所以,如果在C#中的線程池沒有時間片,然後,
一個。這是否意味着ThreadPool是只有用於解決創建新線程的開銷?
b。這是否意味着ThreadPool不能同時運行多個線程,除非處理器有多個內核,每個內核可以運行一個進程?
否..您的理解不正確.. – EZI 2015-02-08 01:14:44