【问题标题】:heterogeneous task & homogeneous task异构任务和同质任务
【发布时间】:2012-04-25 15:34:23
【问题描述】:

这两者的定义是什么,“异构任务”和“同质任务”有什么区别?当我阅读 Java Concurrency In Practice 一书时,这两个短语跳了出来。在我看来,这就是任务的大小和任务的处理时间。但我不是很明白。我用谷歌搜索了它,但找不到准确的答案。谁能帮我?谢谢。

【问题讨论】:

    标签: java multithreading task


    【解决方案1】:
    • 同类任务:以类似方式处理并花费大致相同时间的一组任务。示例:将 square 函数应用于数组的每个元素。模式:数据并行。
    • 异构任务:一组没有明确逻辑关系的任务,可以在不同的时间内执行。示例:在下载网页的同时估计 pi。模式:任务并行。

    【讨论】:

    【解决方案2】:

    它可能指的是这样的东西:

    • 异构任务是根本不同的任务。例如,“获取最新天气”与“获取最新消息”。这有时被称为基于任务的并行性
    • 同质任务是执行相同任务但可能具有不同输入的任务。例如,“我有 20 个股票代码 - 获取每个代码的股票价格”。这有时被称为基于数据的并行性

    (请注意,基于任务/数据的并行性的含义似乎因上下文而异。希望上述内容至少在某些情况下是正确的;)

    【讨论】:

      【解决方案3】:

      我认为它们在本书上下文中的意思是,如果您有 20 个任务,其中 19 个需要 10 毫秒才能完成,而另一个需要 1 秒才能完成。按顺序或同时运行它们不会有很大的不同:它需要或多或少的 1 秒。

      如果您有 20 个任务都需要 10 毫秒才能完成并且是独立的,您可以通过并发运行而不是顺序运行来显着减少执行时间。

      【讨论】:

      • 我认为你表达的是任务大小和它们之间的关系(如果独立的话),如果书上这么说,我可能会更清楚,但这两个短语没有解释就跳出来了,并且我的英语不是很好,所以我问了这个问题,以检查是否有人对这两个有更正式的定义!
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-01
      • 2016-09-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多