コンピュータ

リエントラント(再入可能)とは

リエントラント(再入可能)

リエントラント(再入可能)とは

リエントラント(再入可能)とは、複数のプログラムを並行して実行するマルチタスク(マルチプログラミング)において、実行中プログラムが同時に他のプログラムから呼び出されても正常に処理できるという性質のことです。

例えば、次の図のように並行して複数のプログラム(タスク)から同時に呼び出されても、リエントラント(再入可能)の性質を持つプログラムは、それぞれに正しい結果を返却することができます。

リエントラント(再入可能)

リエントラント(再入可能)のプログラムは、使用するデータ(変数)を共有しないように設計しているため、呼び出し元のプログラム同士が、互いのデータ(変数)を干渉することなく並行して実行することができます。

スレッドセーフとの違い

リエントラント(再入可能)と似たような言葉に「スレッドセーフ」があります。

スレッドセーフとは、マルチスレッド環境において、プログラムを複数のスレッドで並行して実行しても問題が生じない作りになっていることをいいます。

リエントラント(再入可能)のプログラムは、使用するデータ(変数)を共有しません。それに対してスレッドセーフは、使用するデータ(変数)の共有有無に関わらず、複数のスレッドから呼び出されても問題が生じないように制御します。