0

我有 3 个在机器上运行的 .net 进程(每个进程之间没有连接)所有进程都使用相同的 .net 版本编译(比如说 .net 4.0)

  1. 是否所有进程都使用相同的线程池?threadPool 实例是否每个 CLR 在机器上运行?还是每个进程都有自己的线程池?

  2. 如果其中一个进程是使用 .net 2.0 => 编译的,现在是否会有更多的 threadPool 实例(这将增加开销,因为更多的 threadPool 实例将形成将出现在这个新 threadPool 中的新线程)?

4

1 回答 1

3

ThreadPool 只是一个围绕生产者/消费者队列的托管包装器——这将是每个 AppDomain 的。它不会在进程之间共享。每个进程通常有一个 AppDomain,但即使您在单个进程中创建多个 AppDomain 实例,ThreadPools 也会分开。但是请注意,托管线程和非托管线程不是一回事:托管线程如何由进程的非托管线程提供服务是一个实现细节。

于 2012-06-02T06:28:29.160 回答