【问题标题】:Parallel For Min and Max Threads最小和最大线程并行
【发布时间】:2011-03-04 12:41:56
【问题描述】:

使用 ParallelOptions,我如何指定我想要的最小线程数?我已将 Max Degree 发送到 50,但当我查看时,有时只有 17 是开放的,而且它似乎没有超过那个。

建议?

【问题讨论】:

标签: c# multithreading task-parallel-library


【解决方案1】:

任务并行库将决定有多少线程适合给定机器上的给定任务。因此,只有在非常罕见的情况下(例如,对特定且众所周知的目标机器进行非常高的优化),您才应该为 TPL 提供更多的决策输入。在大多数情况下,您最好让 TPL 自己完成工作。

【讨论】:

  • 感谢您在没有给出任何理由的情况下投反对票!这样我下次就有最好的机会做得更好......
  • 什么说我们知道我们需要一定数量的线程,我们如何给 TPL 输入?
  • @VincentMcNabb 正如 OP 已经提到的,使用ParallelOptions.MaxDegreeOfParallelism。这只是设置了一个上限,但是由于 TPL 会尝试使用尽可能多的线程,这非常接近您的要求,
  • 不,不是。我说的是“正是”这个词。 “Max”和“exactly”有着完全不同的含义。我有一个特定的应用程序,它在特定操作上花费了 20% 的时间,因为 TPL 需要花时间来增加线程数。答案是“TPL 不可能”。答案不是“使用最大值”。为了适应这种情况,我们需要使用不同的库。
  • 可悲的是,另一个人在没有给出理由的情况下否决了答案。请帮我们一个忙,给我们一个提示,为什么您认为答案不好。只有这样我才能提高自己,别人才能从中学习。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-06-24
  • 2014-05-06
  • 2011-07-27
  • 2016-09-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多