FIFO与FILO

概述

参考:

first in,first out(先进先出,简称 FIFO)last in,firtst out(后进先出,简称 LIFO) 在计算机科学中,是两种有组织得操作结构化数据的方法。很多时候,FIFO 也称为 Stack(栈)LIFO 也称为 Queue(队列)

注意:也可以说是是两种抽象的数据类型。但是这里的抽象数据类型,并不是指编程语言中的抽象数据类型。而是一种设计理念、设计思路。

FIFO

  • 考虑火车票购票系统,我们假设系统同时只能处理 40 个买票请求。那么当系统在处理 40 个请求时,来了第 41 个请求,系统就需要把这个请求缓存起来。同样,在这一过程中如果来了第 42、第 43、……第 1000 个请求,系统也需要把这些请求缓存起来。
  • 当系统处理完毕一个请求后,有 39 个请求尚在处理,系统能够处理一个新的请求。于是系统就需要从自己的缓存里挑一个请求来处理。而此时缓存里有第 41 至第 1000 个请求,系统应该挑选哪一个请求来处理呢?按照先到先得的朴素排队的想法,系统理应挑选并处理第 41 个请求。
  • 在这种情况下,如果将系统的缓存设计为 FIFO,就能够很方便地实现上述调度策略。

LIFO

  • 就好像你拿了十页论文,看完一页放桌子上一页,最后一页自然的就在最上面,也就是说你从桌子上拿到的第一张就是最后放在桌子上的一页。
  • 也可以用叠牌子类比,把盘子叠一摞,那么当需要拿盘子的时候,最后叠上去的盘子是被先拿到的。

最后修改 October 4, 2023: 合并 commit (98ba273b)