戏说进程,线程,协程

        "小笨蛋,起床啦“,我老婆新恒结衣如同平日一般叫我起床了,我睡眼惺忪的起床了,刷牙洗脸,我老婆围着围裙在我给做爱心早餐,我闻着空气中飘来淡淡的肉香,我知道老婆在给我做我最喜欢的汉堡肉。

         我看向我老婆露出了幸福的笑容,我老婆还是一如既往的可爱,在早上的早餐还是像平常一样聊起了平日的琐事。

         老公,不如我们多买一个平底锅把,我觉得家里一个不够,我平时给你做饭时,做汉堡肉的时候,就不能再做你喜欢的鱼香肉丝了,因为时间不够,所以我想多买一个,那我这样就能同时做2个菜啦~~~,老婆一边说着,一般露出可爱的虎牙。

          我心想我老婆也太可爱了把,不过就是笨了点,老婆,你做这两个菜难道就没有什么共同的步骤吗?

          我老婆嘟起嘴,一副深思的样子,像极了一只小松鼠,难道你的意思是鱼香肉丝和汉堡肉都需要洗菜,腌制,煎炒,因为汉堡肉的腌制时间长一点,所以当汉堡肉腌制的时候,我可以先把鱼香肉丝下锅,是吗?老公

          我老婆也太聪明,太可爱了把,是的,就像计算机里面的进程,他们如果每一个进程都得等上一个进程做完,那得消耗多少时间啊,现在计算机的CPU计算速度太快了,这无疑是巨大的消耗,所以他里面都有一个时间片的概念,如果进程A在一个时间片时间做不玩,必须得挂起,把资源让出来给其他进程,而他们之间的切换又非常快,在只有一个CPU的电脑中,他们看起来好像又是同时进行的,这也叫做并发。

          老公你棒了,不过我还有个问题,就是鱼香肉丝这道菜的工序太多了,每次做都要很长的时间,老公你这么聪明,你肯定有办法缩短时间把!

          当然,我可是你聪明的老公,这其实就像计算机里面的线程一样,鱼香肉丝就像一个进程,但是你不一定要一步步的做下来,你想一下,鱼香肉丝不是要切肉,热锅吗,你难道就不能先把锅热起来,然后肉切好,锅也热好了,这时候你不就可以直接可以把肉下锅了吗,这其实就是线程,一个进程可以有多个线程,例如我们在玩LOL,它里面有一个播放音乐的线程,有一个操作键盘的线程,这样我们才能操作的同时和听音乐。

          老公你是世界上最聪明的人,然后在我脸上亲了一嘴。

         这时候我已经膨胀了,然后我又自作聪明的说到,还有更厉害的了!那就是协程,你想一下,如果在同一个进程里面有2个线程同时对同一块内存进行操作,这样很有可能造成数据不一致的问题,这是不可取的,这时候我们通常通过加锁等方式来让线程同步,多线程的程序调试起来十分麻烦切容易出错,这时候我们就可以用到协程了,所谓的协程就是把程序的控制权从CPU调到程序手中,让程序来决定什么时候该挂起,什么时候该执行,一个线程有多个协程,由于协程都在同一线程中,这是我们就不用考虑同步的问题了!

        我老婆皱紧眉头,那不就不能利用多核的优势了吗?你这样和完全按顺序一步步来有什么区别?

        我兴安欣慰,我老婆变聪明了,一定是因为我的原因把!这是我们就可以利用多进程和协程了!这样不就既可以利用多核,也不用加锁吗!进程间的通讯方式也有很多,例如管道,RPC(基于socket),共享内存等。

        好了,吃完早餐,我该出去上班了,在门口老婆早就准备好我要上班穿的衣服和鞋子,细心地帮我穿好之后,一声今天也要好好加油,又是我今天奋斗一天的动力!!!!

发布了133 篇原创文章 · 获赞 8 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/fbher/article/details/99566498