异构任务&同质任务

时间:2012-04-25 15:34:24

标签: java multithreading task

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

3 个答案:

答案 0 :(得分:3)

  • 同类任务:以类似方式处理并占用大致相同时间的任务组。示例:将square函数应用于数组的每个元素。模式:数据并行。
  • 异构任务:一组没有明确逻辑关系且可能在不同时间内执行的任务。示例:与下载网页同时估算pi。模式:任务并行。

答案 1 :(得分:0)

这可能是指这样的事情:

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

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

答案 2 :(得分:0)

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

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