2012-06-02 38 views
0

我有3個運行在機器上的.net進程(每個進程之間沒有連接) 所有使用相同.net版本編譯的進程(可以說.net 4.0)相同/不同CLR上的線程池實例

  1. 是否所有進程使用相同的threadPool? threadPool實例是否是在機器上運行的每個CLR?或每個進程擁有自己的threadPool?

  2. 如果一個進程使用.net 2.0編譯=>是否會有更多的threadPool實例(這會增加開銷,因爲更多的threadPool實例會形成新的線程,將出現在這個新的threadPool中) ?

+0

這可能也會回答你的問題 http://stackoverflow.com/questions/3447384/does-threadpool-get-shared-between-application-domains – Adil

+0

thanls,但不同的CLR呢? – Yanshof

+0

不同版本的CLR使用不同的線程池!你想問嗎? – Adil

回答

3

ThreadPool只是一個圍繞生產者/消費者隊列的託管包裝 - 這將是每個AppDomain。它不會在進程之間共享。每個進程通常都有一個AppDomain,但即使您在一個進程中創建多個AppDomain實例,ThreadPools也會分開。但是請注意,託管線程和非託管線程並不是一回事:託管線程如何得到進程的非託管線程的服務是一個實現細節。

相關問題