スレッドセーフ
例えばスレッドの識別子(番号)をキーとして広域変数をスレッドごとに持たせることで、サブルーチンを超えた範囲で変数を保持できるようにする。各変数にアクセスするサブルーチン自体はリエントラントではないが、特定のスレッドだけが特定の広域変数にアクセスすることが保証できれば、スレッドセーフとなる。
スレッドセーフ(英: thread-safe)は、マルチスレッドプログラミングにおける概念である。あるプログラムコードがスレッドセーフであるという場合、そのコードを複数のスレッドが同時並行的に実行しても問題が発生しないことを意味する。特に、ある共有データへの複数のスレッドによる読み書きアクセスがあるとき、一度に1つのスレッドのみがその共有データにアクセスするようにして安全性を確保しなければならない。スレッドセーフでないコードを同時並行的に実行すると、データ競合による未定義動作を引き起こしたり、競合状態(レースコンディション)による意図しない動作を引き起こしたりする。場合によっては深刻なセキュリティホール(脆弱性)が引き起こされることもある。