【发布时间】:2011-05-30 21:48:07
【问题描述】:
我目前正在研究任务并行库,并且我在某处读到 TPL 实际上使用了 CLR 级别的线程池机制。我找不到任何文章证实此信息。我知道,TPL 对每个线程都有任务队列,并使用一些特殊的工作窃取算法进行平衡。据我所知,它为每个处理器创建一个线程。线程池从 .NET 4 开始使用 TPL 的任务对象。
我不明白 TPL 是如何使用线程池的。线程池模式状态,工作项排队,线程池中的空闲线程从该队列中获取一个。然而,TPL 将项目(任务)存储到线程队列中,如果需要,工作窃取工作......因此,完全不同。我的错在哪里?
额外问题:由于这是我的第一个 Stack Overflow 问题,我不确定它是否合适。是吗?
【问题讨论】:
-
(顺便说一句,作为一个 SO 问题绝对没问题。)
标签: .net threadpool task-parallel-library