title: 并发与并行的区别？
desc: 在网上看到说并发是多个任务交替使用CPU，同一时刻还是只有一个任务在跑，并行是多个任务同时跑。。。。但是，多线程叫做并发，多线程程序在多核CPU上面，在没有资源竞争时，他们应该也是同时在跑的吧，那这怎么解释，这两者到底有什么区别
topic: Java
content: Erlang 之父 Joe Armstrong 用一张5岁小孩都能看懂的图解释了并发与并行的区别 并发是两个队列交替使用一台咖啡机，并行是两个队列同时使用两台咖啡机，如果串行，一个队列使用一台咖啡机，那么哪怕前面那个人便秘了去厕所呆半天，后面的人也只能死等着他回来才能去接咖啡，这效率无疑是最低的。有评论里说，并发是不是一个线程，并行是多个线程？答：并发和并行都可以是很多个线程，就看这些线程能不能同时被（多个）cpu执行
answerer_tags: 公众号：Python之禅