【问题标题】:Standard practices in concurrent/parallel processing?并发/并行处理的标准做法?
【发布时间】:2014-01-03 08:42:40
【问题描述】:

简单地说,在什么用例中,最好让许多进程从队列中取出一条消息并按顺序完成针对该作业的许多任务,或者让许多任务/进程从队列中取出 1 条消息并完成针对它的任务.

我有一份工作要排队。清洗我的衣物。

我能做到……

      [option A]
      Clean My Laundry -----> Wash it
                              then, Store Transaction
                              then, Tell ppl i'm washing
                              then, write a blog about it

      OR

     [option B]
     Clean My Laundry ------> Wash it
                      ------> Store Transaction
                      ------> Tell ppl i'm washing
                      ------> write a blog about it

任务的顺序无关紧要。他们只需要完成。我了解它们是否相互依赖,请将它们分组。

对分布式进程进行分组或不分组的优点或缺点是什么?

感谢您的任何贡献。

【问题讨论】:

  • 您在寻找什么样的优势或劣势?通常并发是出于性能或响应性的原因。
  • 我只是想知道为什么选择 a 和 b 选项?

标签: scala haskell heroku concurrency erlang


【解决方案1】:

您的示例显示了并行性而不是并发性:并行性是将一项任务拆分为子任务并同时执行子任务;并发是许多不同的事情同时发生。

正如您所说,当您的主要任务可以拆分为相互独立的子任务时,并行处理是一个好主意。优点是主任务只需要最长的子任务。

Simon Marlow 最近关于使用 Haskell 进行并行处理的书是一本很好的(透彻、易读的)介绍。

【讨论】:

    猜你喜欢
    • 2021-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-31
    • 1970-01-01
    • 2019-04-26
    • 2011-01-02
    • 2013-05-24
    相关资源
    最近更新 更多