我一直在閱讀線程池。許多網站都說線程池中默認的最大線程數是25(每個處理器)。但是我沒有修改最大線程,當我這樣做時:線程池中的線程
Threadpool.GetAvailableThreads(out WorkThreads,out compPortThreads);
我得到500,1000。我正在運行雙核心電腦,所以不會期望超過50個。
我真的有500,1000在我的池?
感謝 約翰
我一直在閱讀線程池。許多網站都說線程池中默認的最大線程數是25(每個處理器)。但是我沒有修改最大線程,當我這樣做時:線程池中的線程
Threadpool.GetAvailableThreads(out WorkThreads,out compPortThreads);
我得到500,1000。我正在運行雙核心電腦,所以不會期望超過50個。
我真的有500,1000在我的池?
感謝 約翰
這已更改版本之間:
從the documentation of the ThreadPool class in Visual Studio 2005:
有每個進程一個線程池。線程池的每個可用處理器的默認大小爲25個線程。
從the documentation of the ThreadPool class in Visual Studio 2010:
有每個進程一個線程池。線程池的默認大小爲每個可用處理器250個工作線程,以及1000個I/O完成線程。
作爲一個有趣的邊注:對於Visual Studio 2008中,English documentation承諾250個工作線程,而German translation只給你25啊,車翻譯的樂趣...
每個處理器的線程默認數量有不同的版本之間顯著改變。
相信在運行時獲得的值。
有每個進程一個線程池。 線程池的默認大小爲 250個工作線程每個可用的 處理器和1000個I/O完成 線程。
該方法返回可以啓動的線程數,而不是當前正在運行的線程數。你讀到的有關25是最大值的信息已經過時了。我不確定哪個版本,但是線程池限制顯着增加,以避免死鎖問題,主要是由於開發人員不知道他們在做什麼,恕我直言。