2014-09-04 202 views
-3

理論上,看起來單個機器上可能有多個線程池,但即使機器有多個處理器,.Net框架也只有一個線程池。 這種說法是正確的嗎?單臺機器上可以存在多少個線程池?

更新1:

從Tim的意見,得到的答覆是,會有每個進程一個線程池的.Net。因此,如果多臺進程在單臺機器上運行,則該機器上可能存在多個.Net線程池。

+2

你的聲明的來源是什麼? – 2014-09-04 00:03:15

+0

@GeorgeStocker,根據我所知,這只是我最好的猜測,但不知道它是否準確。 – Sunil 2014-09-04 00:06:59

+0

@GeorgeStocker,你認爲我的問題是無效的? – Sunil 2014-09-04 00:08:40

回答

5

每個進程有一個線程池。從.NET Framework 4開始,進程的線程池的默認大小取決於若干因素(如虛擬地址空間的大小)的 。一個 進程可以調用GetMaxThreads方法來確定 線程的數量。線程池中的線程數可以使用SetMaxThreads方法更改爲 。

Source(empthasis礦)

線程池提供了一個配置「容器」,例如,您可能要控制可用於特定應用程序或服務的線程數。

...即使機器具有多個處理器

核心的數量確實影響線程池的默認值,但它不會限制可以創建的線程池的數量。

+1

優秀解釋。謝謝。 – Sunil 2014-09-04 00:14:48

相關問題