并发与并行

并发:逻辑上的同时发生,强调有处理多个任务的能力但不一定要同时
并行:物理上的同时发生,强调有同时处理多个任务的能力

打个比方,并发相当于一个人吃三个馒头,而并行相当于三个人吃三个馒头。而Erlang之父Joe Armstrong则用咖啡机和等待取咖啡的人来类比:并发是两条队列交替使用一台咖啡机,并行是两个队列同时使用两台咖啡机。

与可以一起出发的并发(concurrent)相对的是不可以一起出发的顺序(sequential)

  • 顺序:上一个开始执行的任务完成后,当前任务才能开始执行
  • 并发:无论上一个开始执行的任务是否完成,当前任务都可以开始执行

与可以一起执行的并行(parallel)相对的是不可以一起执行的串行(serial)

  • 串行:有一个任务执行单元,从物理上就只能一个任务一个任务执行
  • 并行:有多个任务执行单元,从物理上就可以多个任务一起执行
powered by Gitbook最后修订时间: 2020-05-14 11:49:02

results matching ""

    No results matching ""