【问题标题】:Will Reactive Extensions (Rx) supersede the Task Parallel Library?反应式扩展 (Rx) 会取代任务并行库吗?
【发布时间】:2010-11-05 10:53:24
【问题描述】:

在关注samples of Rx.NET 之后,我对反应式扩展的概念和实现多么出色感到震惊。它似乎为开发人员提供了一种更易于维护的模式,以实现与 .NET 4.0 的任务并行库提供的相同类型的多线程并行编码。

Rx.NET 会取代 TPL 吗?应该吗?

【问题讨论】:

    标签: .net parallel-processing system.reactive


    【解决方案1】:

    简而言之,没有。

    Task Parallel Library (TPL) 提供了工作分配(concurrency),以及更大工作的并发优化(parallelism),同时抽象了实际机制工作分配(线程)。

    C# 添加了async 关键字以帮助从语言级别管理异步。 Rx 已更新以支持此功能。

    Rx 提供了一个框架来使用标准运算符组合和管理异步数据流。虽然 Rx 对调度程序的使用存在一些交叉,但这只是一个抽象。事实上,推荐的并行调度程序是TaskScheduler,它使用了 TPL。

    另请参阅Jeffrey van Gogh's response Rx 论坛上完全相反的问题。

    另外,this question 可能有用。

    【讨论】:

    • TPL 不是关于并行性,而是关于并发性。
    • @user - 是的,虽然 PLINQ 是 TPL 的一部分并且它提供并行性。
    • 您必须看到“任务并行库与并行性无关”评论的讽刺意味;-)
    • 老问题,但我认为我不能同意这个答案的前提(尽管结果是另一回事)。对我来说,异步是关于 observables 的生成,并且任务也可以被认为是 observables。所以 Rx 是一个不同的概念框架,它提供了一个不同的术语,涵盖了 TPL + async 所涉及的所有内容。
    猜你喜欢
    • 1970-01-01
    • 2011-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多