代码之家  ›  专栏  ›  技术社区  ›  TalentTuner

任务并行库与本机线程同步

c#
  •  5
  • TalentTuner  · 技术社区  · 15 年前

    这个问题可能是主观的,但我只想知道何时使用TPL,何时使用基于本机线程的同步(evnts,wait handles)。

    本机线程同步技术将来会过时吗?

    谢谢

    3 回复  |  直到 11 年前
        1
  •  4
  •   Ian Mercer    15 年前

    尽可能使用TPL,因为它是一种更简洁、更具声明性的方式来表达您对并行性的需求。

    MSDN解释 “TPL动态地调整并发程度,以最有效地使用所有可用的处理器。此外,TPL还处理工作的分区、线程池上线程的调度、取消支持、状态管理和其他低级细节。通过使用TPL,您可以最大限度地提高代码的性能,同时专注于程序设计要完成的工作。”

    另见 http://www.albahari.com/threading/part5.aspx 其中详细介绍了“数据并行”的好处和其他TPL的好处。

        2
  •  1
  •   Pieter van Ginkel    15 年前

    当您创建一个成熟的多线程应用程序(如web服务器)时,仍然需要使用正常的线程和同步。当然,WCF和IIS已经为您解决了这些问题。

        3
  •  1
  •   Sergey Teplyakov    15 年前

    任务并行库并不是主要用于线程同步,它是为方便更多的任务而设计的。第三方物流旨在促进以下步骤:

    1. 把它分成小块。
    2. 通过多线程并行执行这些块。
    3. 当结果可用时,以线程安全和性能良好的方式对其进行整理。