Concurrency
Parallelism
并发是指一次处理多件事。
并行是指一次做多件事。
二者不同,但是有联系。
一个关于结构,一个关于执行。
并发用于制定方案,用来解决可能(但未必)并行的问题。1
——Rob Pike
Go 语言的创造者之一
真正的并行需要多个核心。现代的笔记本电脑有4个CPU 核心,但是通常不经意间就
有超过100 个进程同时运行。因此,实际上大多数过程都是并发处理的,而不是并行处
理。计算机始终运行着100 多个进程,确保每个进程都有机会取得进展,不过CPU 本身
同时做的事情不能超过四件。十年前使用的设备也能并发处理100 个进程,不过都在同
一个核心里。鉴于此,Rob Pike 才把那次演讲取名为“Concurrency Is Not Parallelism (It’s
Better)”[“并发不是并行(并发更好)”]。