高并发与高并行

1、什么是高并发?什么是高并行?

Erlang 之父 Joe Armstrong 用一张5岁小孩都能看懂的图解释了并发与并行的区别

高并发与高并行

并发是两个队列交替使用一台咖啡机,并行是两个队列同时使用两台咖啡机,如果串行,一个队列

使用一台咖啡机,后面的人也只能死等着他回来才能去接咖啡,这效率无疑是最低的。

知乎上有评论里说,并发是不是一个线程,并行是多个线程?
答:并发和并行都可以是很多个线程,就看这些线程能不能同时被(多个)cpu执行,如果可以就
说明是并行,而并发是多个线程被(一个)cpu 轮流切换着执行。


或者换一种形象的比喻:你要给两个孩子同时喂奶。
(1)用一个奶给两个孩子轮流喂,这叫并发。
(2)用两个奶分别给两个孩子喂,这叫并行。


2、高并发架构设计