2

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

4

3 回答 3

3
  • 同质任务:以类似方式处理并花费大致相同时间的一组任务。示例:将 square 函数应用于数组的每个元素。模式:数据并行。
  • 异构任务:一组没有明确逻辑关系并且可以在不同时间内执行的任务。示例:在下载网页的同时估计 pi。模式:任务并行。
于 2012-04-25T15:39:23.327 回答
0

它可能指的是这样的事情:

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

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

于 2012-04-25T15:38:57.450 回答
0

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

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

于 2012-04-25T15:40:35.967 回答