并发(Concurrent)是轮流处理,并行(Parallel)是同时处理。参考下面这张 Joe Armstrong (Erlang creator) 画的图。

concurrent-and-parallel.png

  • 并发(Concurrent) 是多个队列使用同一个咖啡机,然后两个队列轮换着使用(未必是 1:1 轮换,也可能是其它轮换规则),最终每个人都能接到咖啡

  • 并行(Parallel) 是每个队列都拥有一个咖啡机,最终也是每个人都能接到咖啡,但是效率更高,因为同时可以有两个人在接咖啡