【ファイフォ】

FIFO(先入先出) とは?

最終更新:
💡 先に入れたデータから、先に取り出す

先に入れたものから先に取り出す、先入先出の方式。FIFOのキューでは末尾に追加し、先頭から取り出す。並列に処理する場合の完了順まで、このルールだけで決まるわけではない。

📌 このページのポイント
A、B、Cと入れたら、Aから取り出すFIFOの待ち行列ABC先頭末尾追加取出取り出す順序:A → B → C並列に進めた処理の完了順は別
既存の右から追加・左から取り出す配置を維持。青は待ち行列と要素、緑は最初に取り出すAで、末尾をエラーの赤にはしません。矢印は追加/取り出しの方向。描かれた箱は論理的な順番を示し、物理的なメモリ配置ではありません。
ひよこ ひよこ
FIFOってどういう順番?
ペンギン先生 ペンギン先生
First In, First Out、先入先出のことだよ。A、B、Cと順に入れたら、A、B、Cと取り出す。後から入れたものが、先に入れたものを追い越さないルールなんだ
ひよこ ひよこ
キューと同じ意味なの?
ペンギン先生 ペンギン先生
FIFOは順序のルールで、それを使うデータ構造がFIFOキューだよ。ただし、キューと呼ぶものがすべてFIFOとは限らない。PythonやJavaにも、優先度によって取り出すキューなどがあるんだ
ひよこ ひよこ
LIFOとの違いは?
ペンギン先生 ペンギン先生
LIFOはLast In, First Out、後入先出だよ。A、B、Cと入れたら、C、B、Aと取り出す。FIFOは先に並んだ人から、LIFOは積んだ物の上から取るイメージで比べられるね
ひよこ ひよこ
FIFOなら、仕事が終わる順もA、B、C?
ペンギン先生 ペンギン先生
取り出した後の処理によるよ。複数の担当が並列に進めれば、後に取り出した短い仕事が先に終わることもある。FIFOが直接決めるのは取り出し順。完了順も揃えたい場合は、そのための処理設計が必要なんだ
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「FIFO」って出てきたら「先に入れたものから先に出す、順番のルール」と思えればだいたいOK!
📖 おまけ:英語の意味
「First In, First Out」 = 先入先出(先に入ったものが先に出る)
💬 「最初に入ったものが最初に出る」をそのまま略した言葉だよ。会計や在庫管理の世界でも同じ用語が使われているんだよ

参考資料

← 用語集にもどる