RPG における 2 つのタイプのスレッド・セーフティーの利点と欠点を確認するには、「
Rational Development Studio for i ILE RPG プログラマーの手引き」のマルチスレッド・アプリケーションに関する項を参照してください。システム機能のうち、マルチスレッド化された環境内で使用できないもの、またはサポートされないものについてのリストを確認するには、以下の URL のトピック「プログラミング」にある資料「マルチスレッド化されたアプリケーション」を参照してください。
http://www.ibm.com/systems/i/infocenter/
スレッド・セーフ・プログラム内では次の標識は使用できません。
- *INUx 標識
- 外部標識 (*INU1 から *INU8)
- CALL または CALLB 命令の LR 標識
THREAD キーワードを使用するときは、次の点に注意してください。
- モジュール間またはスレッド間で共用される記憶域を、スレッド・セーフ方式で使用できるかどうかは、プログラマー次第です。
この記憶域には次の記憶域が含まれます。
- エクスポートおよびインポートされることにより、明示的に
共用される記憶域
- プロシージャーが、パラメーターまたはポインター・パラメーター
のアドレス、または割り振り済み記憶域を保管し、それをそれ以降の呼び出し
で使用する、という理由によって共用される記憶域。
- 変数の定義で STATIC(*ALLTHREAD) が指定されたために共用されている記憶域
- 共用ファイルが複数の言語 (RPG と C、または RPG と COBOL など) によって使用
される場合、そのファイルに 1 度にアクセスする言語は必ず 1 つだけに
限定してください。