В программировании очень часто возникает задача управления порядком обработки данных: что обрабатывать первым, что - последним, и почему.

Для этого используются два фундаментальных принципа:

  • FIFO - First In, First Out (первым пришёл - первым вышел)
  • LIFO - Last In, First Out (последним пришёл - первым вышел)

Эти подходы лежат в основе структур данных, алгоритмов, многопоточности, сетевых приложений и даже работы операционных систем.


Что такое FIFO

FIFO - принцип, при котором элемент, добавленный первым, обрабатывается первым.

Аналогия из жизни:

  • Очередь в магазине
  • Очередь задач на печать
  • Очередь запросов на сервер

FIFO реализуется с помощью очереди (Queue).

Добавление → [A][B][C] → Удаление
              ↑      ↑
           первый   последний

Что такое LIFO

LIFO - принцип, при котором последний добавленный элемент обрабатывается первым.

Аналогия из жизни:

  • Стопка книг
  • Тарелки в кафе
  • История действий (Undo)

LIFO реализуется с помощью стека (Stack).

        ↑ Удаление
       [C]
       [B]
       [A]
        ↓ Добавление

Source: Orkhan Alishov's notes