如果你的电脑是16核心的话,可以开16个 goroutine 共同计算一列数的的综合,就会发现总的执行时间没有明显缩短。再去观察 CPU 运行状态,你会发现尽管我们有16个 CPU 核心,但在计算过程中其实只有一个 CPU 核心处于繁忙状态,这是会让很多 Go 语言初学者迷惑的问题。 官方的答案是,这是当前版本的 Go 编译器还不能很智能地去发现和利用多核的优势。虽然确实创建了个 goroutine,并且从运行状态看这些 goroutine 也都在并行运行,但实际上所有这些 goroutine 都运行在同一…