多核 CPU 怎么工作
厨房有好几个,就不是轮流,而是在同一刻真正一起干活。这一课来看真正的同时。
要是厨房不止一个
到目前为止,厨房只有一个,一个干活的飞快地这件做一点、那件做一点,轮流着来。
可要是有两个、三个厨房呢?干活的也有那么多,各自在自己的厨房里同时做菜。不是轮流,而是在同一刻真的有好几个人在干活。
电脑里的这些“厨房”叫作核心。核心有好几个,就能在同一刻真正一起处理好几件事。
现在手机、笔记本上写的 4 核、8 核,就是数了数有几个厨房。
厨房一个就轮流,好几个就在同一刻真正同时。
核心有好几个,就能在同一刻真正一起处理好几件事。
真的一起,还是飞快地轮流
前面说过,一个干活的飞快地轮流,看起来就像同时在做。那是错觉,实际上每一刻只在做一件事。
厨房有好几个就不一样了。哪怕盯着同一刻看,这个厨房和那个厨房里,活儿也真的在同时推进。
差别就出来了:错觉的同时只是看着快,真正的同时在同样的时间里确实能干完更多活儿。
一个厨房轮得再快,干完的总量也不会增加,只是分着用;厨房多了,能处理的总量本身就变大了。
一个厨房飞快地轮流是错觉,好几个厨房才是真正的同时。
一个核心的轮流只是看起来像同时,好几个核心才是真的一起推进。
多加几个厨房看看
要干完的活儿堆了一大堆。亲手改一改厨房的数量。
厨房只有一个时,活儿一件一件按顺序处理。厨房加多了,好几件活儿同时处理,同样的量就能更快干完。
两个厨房大约要一半的时间,四个还要更短。一边加一边看,堆着的活儿减少得有多快。
所以像一次转换许多张照片、制作视频这种重活儿,切成小块分给好几个厨房,就能快得多。
改一改厨房的数量,看看同样的活儿能多快干完。
厨房越多,同样的活儿干得越快,但很快也会碰到极限。
翻倍不等于快一倍
厨房翻一倍,好像就该快一倍。可并不总是这样。
有些活儿没法拆开。等面团发起来的时候,厨房就算有十个也快不了。而且干活的们要是同时想用同一样材料,就得互相等。
所以加厨房,一开始会快很多,可到了某个时候,就不再随着厨房的增加而同样变快了,因为能拆开的活儿是有限的。
说到底,厨房加得再多,那一部分怎么也拆不开的活儿,决定了整体速度的上限。
因为有拆不开的活儿和互相等待,核心加得再多也有极限。
核心加多了会变快,可因为有拆不开的活儿,不会无限地快下去。
用一张纸总结
只要记住三点。
第一,核心有好几个,就是真正地同时干活:不是一个干活的飞快轮流造成的错觉,而是好几个厨房在同一刻一起干。
第二,所以同样的活儿干得更快,因为活儿分开交给了好几个厨房。第三,可还是有极限:因为有拆不开的活儿和互相等待,核心翻一倍,也不会正好快一倍。
说到底,能快多少,与其说取决于厨房的数量,不如说取决于这件活儿能拆得多细。
好几个核心是真正的同时,所以快,但有极限。