parallel和concurrency的区别

完成任务(task)需要资源(resources),如CPU、内存等。

为了加快完成任务:
parallel本质是增加资源,比如将一个任务分解为多个子任务,用多核分别处理各个子任务;
concurrency本质是提高资源利用率,比如在一个任务等待IO时执行另一个任务,让CPU不idle。
concurrency要求任务必须可以中断并恢复。

concurrency的两种应用场景

  1. IO密集
  2. 面对多个任务,不能让其中某个任务等待时间过长