9

IISのWebアプリケーションで実行する場合のSystem.Threading.Threadpoolに関する一般的な質問があります。一度に2つのリクエストを実行し、ThreadPool.QueueUserWorkItemメソッドを介していくつかのスレッドを起動するとします。2つのリクエストはThreadPoolを共有しますか、それとも2つのリクエストからのThreadPoolへの呼び出しは2つの別々のプールで動作しますか?

これはIIS6および7にあります。

洞察をありがとう。

4

1 に答える 1

14

ThreadPoolクラスに関するMSDNドキュメントからの引用は次のとおりです。

プロセスごとに1つのスレッドプールがあります。スレッドプールのデフォルトサイズは、使用可能なプロセッサごとに250ワーカースレッドで、1000 I/O完了スレッドがあります。

IIS6およびIIS7では、特定のASP.NETアプリケーションは、アプリケーションプールインフラストラクチャを介して単一のプロセス( w3wp.exe )内でホストされます。
アプリケーションプールは、複数のWebアプリケーションを異なるAppDomainに保持することでホストできますが、サーバー上の1つの物理プロセス内で実行されます。

これらの2つの事実は、実際には、実行中のWebアプリケーションインスタンスのすべてのスレッドが同じ.NETスレッドプール内で実行されることを意味します。

于 2009-09-21T08:56:41.257 に答える