C# 线程是否由线程池管理?

C# 线程是否由线程池管理?,c#,clr,threadpool,C#,Clr,Threadpool,我知道CLR给每个AppDomain线程池时间片来工作,但我想知道是否通过创建一个新线程,如sothread t=new thread(…) 它是由CLR管理还是由AppDomin线程池管理?线程t=new Thread()将不由线程池管理。但它是CLR在操作系统线程上提供的抽象。ThreadPool是一个附加的抽象,它有助于重用线程和共享线程资源 下面是一个关于.NET中线程的优秀资源: 如果使用.NET 4考虑使用TPL。< /P> < p>当创建新线程时,线程池管理的是“强”>“不”/“强

我知道CLR给每个
AppDomain
线程池
时间片来工作,但我想知道是否通过创建一个新线程,如so
thread t=new thread(…)


它是由CLR管理还是由AppDomin线程池管理?

线程t=new Thread()将不由
线程池管理。但它是CLR在操作系统线程上提供的抽象。ThreadPool是一个附加的抽象,它有助于重用线程和共享线程资源

下面是一个关于.NET中线程的优秀资源:


如果使用.NET 4考虑使用TPL。< /P> < p>当创建新线程时,线程池管理的是<>“强”>“不”/“强”。

如果手动创建线程,则控制其生存时间,这与线程池无关。

当使用<代码>线程类创建线程时,掌控一切。您可以根据需要创建它们,并定义它们是否存在(保持调用过程处于活动状态)、设置它们、启动和停止它们

使用或(在后台使用
ThreadPool
),可以让
ThreadPool
类管理线程的创建,并最大限度地提高线程的可重用性,从而节省创建新线程所需的时间。需要注意的一点是,与
线程
默认值不同,由
线程池
创建的线程不会使调用进程保持活动状态


使用
ThreadPool
的一个巨大优势是,可以让少量线程处理大量任务。相反,如果池不会杀死线程(因为它是为可重用性而设计的),那么如果您有一堆线程是由
线程池创建的,但后来项目数量减少了,
线程池会大量闲置,浪费资源。

我正在使用.Net 4。在一次工作面试中,我说线程池不管理线程,团队负责人说我错了。现在的问题是我能纠正他吗:)