フリーキーズ | 独学プログラミング

FIFO(First-In, First-Out)とは

最終更新日

FIFOとは「First-In, First-Out」の略で、コンピュータサイエンスや情報科学において、データ構造(特に待ち行列)に項目を追加したり削除したりする順序を表すために用いられる原則です。FIFOシステムでは、キューに最も長く入っていたアイテムが、常に最初に取り除かれます。これは、スーパーのレジやバス停で並んで待つなど、現実の場面での行列の仕組みに似ています。

コーヒーショップを用いた例

FIFOを理解するために、ある例えを用いて説明しましょう。コーヒーショップで並んでいるところを想像してください。最初に並んでいる人は、最初にサービスを受けて列を離れ、次の人が続く。新しいお客さんは最後に列に加わります。この動作はFIFOの原理が働いている例であり、待ち行列の実例と考えることができます。

実際のFIFOの例

以下は、FIFOの原則に従った一連の動作の例である:

  1. 空の行から始める: []
  2. 顧客(A)がラインに参加する: [A]
  3. 顧客(B)がラインに加わる: [A, B]
  4. 顧客(C)がラインに加わる: [A, B, C]
  5. 最初の客(A)がサービスを受け、列を離れる:[B、C]
  6. 顧客(D)が列に加わる:[B、C、D]
  7. 次の客(B)がサービスを受け、列を離れる:[C, D]

この例では、空の列からスタートし、一連の操作を行うことで、顧客の入退出をシミュレートします。各操作の後、最初に並ぶのは、サービスを受けずに最も長く待っていた顧客です。

コンピュータサイエンスでは、FIFO原理は一般的に、前述のようにキューのデータ構造と関連付けられています。キューは、実行するタスクの順番を管理したり、Webサーバーでリクエストを処理したり、スーパーのレジ待ち行列のような現実世界のシナリオをシミュレートしたりと、さまざまなアルゴリズムやプログラミング作業で使用されています。

まとめ

要約すると、FIFO(First-In, First-Out)とは、データ構造、特にキューにアイテムを追加したり削除したりする順序を説明するために使用される原則です。FIFOシステムでは、キューに最も長く入っていたアイテムが、常に最初に取り除かれます。FIFOの原理は、コンピュータサイエンスや情報科学において、様々なアルゴリズムやプログラミング作業によく使われています。