応用情報暗記無料で始める

再入可能プログラム(リエントラント)とは?さいにゅうかのうぷろぐらむ

再入可能プログラム(リエントラント)とは、同時に複数のタスクから呼び出されても、それぞれが正しい結果を得られるプログラムの性質。鍵になるのは状態の置き場所で、書き換える領域を呼出し側のスタックやタスク固有の領域に持たせ、コード部と共有データを書き換えないようにする。実体を1つ共有できるため主記憶を節約できる。

最終更新:2026-10-06

試験情報

応用情報技術者試験の過去問では2回出題され、ほかに1問の解説で触れられています(2016年度〜2022年度)。

応用情報技術者試験の頻出用語/テクノロジ系

別名:再入可能プログラム、リエントラント

この語が出る過去問を解く →

背景

多重プログラミングが当たり前になると、同じライブラリを複数のタスクが同時に使う場面が生じる。タスクごとにコードを複製すれば安全だが、主記憶が限られた時代にそれは許されない。実体を1つのまま安全に共有するには、書き換わる部分だけを呼出しごとに分けるしかない——この制約から生まれた性質で、共有ライブラリとマルチスレッドの前提として現在も残っている。

具体例

OSのシステムコールやC言語の標準ライブラリの多くは、この性質を満たすよう作られている。逆に処理結果を静的変数へ溜める実装は再入不可で、複数スレッドから呼ぶと互いの値を壊す。C標準ライブラリのstrtokに、状態を呼出し側に持たせるstrtok_rが別に用意されているのはこのためである。

試験での引っ掛け

再使用可能(一度実行した後も再ロードせずに再実行できる)、再配置可能(主記憶のどの位置に置いても動く)、再帰的(自分自身を呼び出せる)との混同が定番。再入可能なら再使用可能だが、逆は必ずしも成り立たない。またロックで守っているだけの実装はスレッドセーフではあっても再入可能とは言わない。

関連用語

出た過去問

問題文で直接問われたものと、解説の中で触れられたものが含まれます。

解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。

この語が出る過去問を解く →

試験での特徴
  • 試験では2回出題(2016年度〜2022年度)
  • 分野:テクノロジ系
  • 再使用可能(一度実行した後も再ロードせずに再実行できる)、再配置可能(主記憶のどの位置に置いても動く)、再帰的(自分自身を呼び出せる)との混同が定番。