【问题标题】:Task Parallel Library and PLINQ Alternatives in C# [closed]C# 中的任务并行库和 PLINQ 替代方案 [关闭]
【发布时间】:2012-04-08 16:20:11
【问题描述】:

我想知道在为利用 C# 中的并行性而设计的集合库方面,TPL 和 PLINQ 有哪些替代方案。

编辑:正如我所说的,我认为这个问题令人困惑。我正在寻找 PLINQ 以外的并行集合库。可能在 PLINQ 和 TPL 之上实现。我对纯函数库特别感兴趣。

【问题讨论】:

  • 您对 TPL 的哪些方面感到不满意?
  • 反应性扩展是否算数?
  • @JaredPar 我并不是要暗示 TPL 不令人满意,但我想知道还有哪些其他选择。但既然你问:TPL 对于某些目的来说有点太低级了,我不同意 PLINQ 中做出的一些设计决策(例如,序列和无序集合的合并)。
  • @DerekBeattie RX 库的用途与并行框架截然不同。
  • @cdiggins true 但是有一些重叠,你可以用 TPL 做的事情,你可以用 Rx 完成,除非我把新的异步东西和普通的 TPL 混淆了。

标签: c# task-parallel-library libraries plinq parallel-processing


【解决方案1】:

并行性总是涉及多个线程(或计算机!那是它们未涵盖的内容:))来运行相同的任务。将一组输入值均分并启动多个线程非常容易,每个线程处理这些块中的一个。一个好处是能够从调用线程中读取结果/异常。这在 TPL 和 PLINQ 中都是可能的。

TPL 和 PLINQ 的好处是您无需考虑这些细节即可让您的任务并行运行。在您的程序运行之后,您可以调整这些库处理输入和输出的方式,而您的代码几乎不需要任何更改。例如,您可能不想为每个线程提供相同数量的输入值,而是在每次完成一个块时为它们提供部分。

我真的不知道缺少什么,除非您不是真正追求真正的并行性。

【讨论】:

  • 感谢您的回答,但这不是我想要的。我正在寻找 PLINQ 和 TPL 的替代库,用于对集合执行并发操作。对不起,我不够清楚。
  • 一方面您想要一个替代方案,但没有解释您不喜欢 TPL/PLINQ 的哪些方面,另一方面您希望在 PLINQ/TPL 之上实现一些可能的东西(不能算作“替代方案” )。你能举个例子说明你在找什么吗?
猜你喜欢
  • 2018-03-13
  • 1970-01-01
  • 2010-11-04
  • 2011-02-05
  • 2011-01-29
  • 2020-02-11
  • 2012-10-08
  • 2010-10-11
  • 2017-03-23
相关资源
最近更新 更多