代码之家  ›  专栏  ›  技术社区  ›  vt.

我为什么要通过OpenMP使用Grand Central Dispatch?

  •  5
  • vt.  · 技术社区  · 17 年前

    苹果在SnowLeopard中引入了GrandCentralDispatch(线程池),但还没有讨论为什么应该在OpenMP上使用它,OpenMP是跨平台的,也适用于Leopard。它们都很容易使用,而且在功能上看起来很相似。有什么想法吗?

    3 回复  |  直到 13 年前
        1
  •  7
  •   user23743 user23743    17 年前

    GCD在运行时更好地评估解决问题的适当资源级别—OpenMP根据环境变量等信息决定为一组并行任务调用多少线程。GCD查看当前的系统负载和可用内核的数量,并允许适当数量的线程运行—随着资源使用的实时变化而不断增加和减少。这意味着GCD计划在一般情况下应该取得更好的结果。当然,如果您购买了一组专用的盒子来运行您的代码,那么这是没有意义的,因为您的代码几乎没有其他冲突。

        2
  •  2
  •   Valmir Pimenta Valmir Pimenta    17 年前

    既然GCD已经是开源的,那么就需要将这两个工具并排放置,看看谁最终会活下来。

        3
  •  0
  •   Justin Niessner    17 年前

    推荐文章