我想知道在设计用于利用 C# 中的并行性的集合库方面,TPL 和 PLINQ 有哪些替代方案。
编辑:正如我所说的,我认为这个问题令人困惑。我正在寻找 PLINQ 以外的并行集合库。可能在 PLINQ 和 TPL 之上实现。我对纯函数库特别感兴趣。
我想知道在设计用于利用 C# 中的并行性的集合库方面,TPL 和 PLINQ 有哪些替代方案。
编辑:正如我所说的,我认为这个问题令人困惑。我正在寻找 PLINQ 以外的并行集合库。可能在 PLINQ 和 TPL 之上实现。我对纯函数库特别感兴趣。
并行性总是涉及多个线程(或计算机!那是它们未涵盖的东西:))来运行相同的任务。将一组输入值均分并启动多个线程非常容易,每个线程处理这些块中的一个。一个好处是能够从调用线程中读取结果/异常。这在 TPL 和 PLINQ 中都是可能的。
TPL 和 PLINQ 的好处是您不必考虑这些细节来使您的任务并行运行。在您的程序运行之后,您可以调整这些库处理输入和输出的方式,而您的代码几乎不需要任何更改。例如,您可能不想为每个线程提供相同数量的输入值,而是在每次完成一个块时为它们提供部分。
我真的不知道缺少什么,除非您不是真正追求真正的并行性。