在我们买手机的时候,近些年来厂商的宣传重点越来越倾向于他们有多少个核,似乎核数越多,就代表着这款手机就更强大。十年前,电脑CPU有4个核就已经是很罕见了,然而在今天,八核的手机也屡见不鲜。
那么,究竟什么是核呢?核数多少有什么意义呢?
我们就以去年很火的一款游戏《分手厨房》来了解下多核和多进程的那些事吧。
《分手厨房》原名《煮糊了》,是2018年在switch和ps4平台上非常火的合作游戏,最多4人联机,在规定时间内分工协作,有的人去洗碗,有的人去切菜,有的人去煮菜和上饭,最终完成顾客点的菜,当分数达标后才能打开下一关。之所以叫《分手厨房》呢,据说是因为很多情侣玩这个游戏吵的不可开交,最终分手而得名。
分手厨房我们把《分手厨房》的游戏内容再简化一点,假设房间里只有一口多功能锅,可以用来做任何的食物,而房间里也只有一个厨师,外面是源源不断的待处理的订单。
这里的锅就是一个CPU内核,这里的厨师呢,就是用CPU这口锅来做菜的一个进程。
起初呢,因为这个锅的科技比较落后,一次只能小火烧一种菜,所以其他的菜就只能干等呀,这就是早期的386时代的计算机,很慢,一次只能支持一个任务。
但后来随着锅的技术越来越先进,做一道菜的时间也越来越短,最后做菜就像用微波炉一样几秒钟就好了。这个时候一个厨师就有点忙不过来了,于是,店长又多雇了几名大厨,大家共用一口锅,这样就可以做到锅永远不闲着,上菜速度也快多了。这就是早期单核时代,伴随着摩尔定律的神奇效果,CPU的计算能力每一年半翻一番,一直持续到奔腾4的时代,这个时候,同一个CPU核上可以同时跑多个进程,你可以同时听歌、看电影和浏览网页,啥都不耽误。
但是技术的进步不是一直能快速前进的,人们渐渐发现,当新式的锅出现后,做饭的速度反而没办法再继续加快了,但是客户的订单越来越多,忙不过来怎么办呢?多买几口锅就好了呀,于是餐厅进入了多锅时代,在计算机的世界里,这就是多核时代的开始。
现在好了,我们有多个锅,有多个厨师,一个厨师可以同时占用一口锅,也可以同时占用多口锅,那么上菜的速度一定比之前更快了。在一台有4个核的计算机里,你听音乐的进程可以运行在1号核上,看电影的进程可以运行在2、3号核上,浏览网页呢,就在4号核上,速度自然是之前只有一个核时的4倍。
但是,多核一定会更快吗?其实不然,当一个厨房里放满了锅和厨师时,大家走来走去,总会互相发生小冲突的,有时候可能大家抢一口锅吵的不可开交,但过了一会儿呢,又可能有好多锅没人用,这时候,厨房也就成了一团糟了。同样的,在多核CPU上执行多个进程时,各进程之间需要怎么能各司其职,分工合理地协作,就成了多核时代首先要考虑的问题了。但这也是时代发展的必然,只是广大程序员所面临的问题要比之前更加复杂了。
网友评论