来源:雪球App,作者: 雪里个球,(https://xueqiu.com/8316936056/166221390)
借着宠物翻译机的点子,这周给我儿子介绍了计算机程序里的队列。其实计算机程序里的队列完全源自生活,借鉴了生活中的队列场景用程序来实现而已。
这次给我儿子介绍了队列的英文名字,先进先出的特性。
父:你知道队列吗?就是你们排成一条长队场景?计算机里也有这个队列。比如你们出操的时候,要排队,这就是一种队列。还有你们打饭时是不是也要排队?
子:是的,吃午饭时老师会让我们排队。
父:打到饭的小朋友会怎么样?是不是走开回到自己的座位去吃饭了?
子:是的。
父:这就是队列的出队,就是队列中的一个人完成了,就会离开队列。然后如果吃饭的小朋友吃完后还想吃就会再来排队要吃的对不对?
子:是的,我们班的xxx特别的能吃,他吃完很快就在跑去要吃的。
父:你有没有发现再排队的人只能从排在最后面开始排队,这就是计算机里的队列原理。计算机很笨,他不允许插队,后面来的必须排在队尾,这样才比较公平。
如果我们的宠物翻译机程序工作时,宠物说了很多话,我们的翻译机要一句一句的翻译,那么就需要在翻译前有个队列,狗狗每说一句话就放在队列中,然后翻译程序从队列中那一个数据翻译一下,拿一个数据翻译一下。
比如字母人说了abcd等等大量字母,翻译机要翻译成为数字告诉给数字人,如果翻译机是个特别慢的程序,这样字母人说的字母要排队等着翻译机来翻译。
子:那如果后面的一直等着怎么办?
父:这个是另外一个问题,系统调度相关的,得你长大一点后再给你讲,现在就假定处理的很快,队列里的任务能够一个个的快速的被处理掉。就如同老师打饭,排队的小朋友很多,但最后每个小朋友都能吃到饭。