任务并行库:应用程序产生了多少个线程



我们现在通过实现task.factory.startnew()使用任务并行库。有什么办法可以检查执行任务时应用程序产生多少个线程?

目前,我们正在开发环境中的双核处理器中运行该应用程序。

tpl执行任务时不会产生任何线程,除非您使用自定义调度程序或通过taskCreationOptions.longrunning选项。即使那样,这取决于用于决定如何处理长期运行任务的任务。

tpl将单个任务计划到线程池以通过池的线程执行。每个线程都有自己的队列以减少多核计算机中的冲突。如果线程太忙,则该框架使用一些偷窃魔法将任务分配给同一线程池中的空闲线程。

检查TPL如何使用CLR线程池以获取更多信息,以及丹尼尔·莫斯(Daniel Moth)的这篇文章,以获取有关窃取工作的详细信息。

最新更新