线程池是否依赖于窗口调度程序?

时间:2011-06-22 18:25:20

标签: .net-4.0

.net 4.0中的新线程池是否依赖于Windows调度程序,还是以某种方式集成以控制?

1 个答案:

答案 0 :(得分:0)

.NET线程池本质上是一个线程池,可以共享它们来执行任务,处理异步I / O并提供定时器。池中的“对象”是.NET线程,这些是使用Windows线程实现的。因此,当线程池在线程上执行任务时,它将在Windows线程上执行。

通常,进程将包含多个线程,其中一些线程可能属于线程池。当这些线程并发执行时,Windows调度程序负责通过使用上下文切换来调度线程以在CPU内核上执行。

.NET 4线程池不会调度正在执行的线程。但是,已在线程池中排队等待工作的任务最终将分配给线程池中的线程。当任务完成时(可能需要1毫秒或1年),线程将被回收到线程池中。线程池可以扩展和收缩,以优化系统资源的使用方式。

您可以阅读博客文章,了解对.NET 4.0线程池进行了哪些改进:ThreadPool Improvements by Eric Eilebrecht