iSeries システムでマルチスレッド化をサポートできるようになりました。 ILE RPG がプログラム・スレッドの初期化や管理を直接にサポートすることはありませんが、ILE RPG プロシージャーは、マルチスレッド環境でスレッドとして実行できます。ILE RPG プログラムをマルチスレッド・アプリケーションで呼び出したい場合は必ず、ILE RPG プロシージャーがスレッド・セーフであるようにする必要があります。 また、プロシージャーがアクセ スするシステム機能はどれもスレッド・セーフであるようにする必要もあります。
THREAD(*SERIALIZE) 制御仕様書キーワードを指定すると、ILE RPG モジュールについてスレッド・セーフティーを実現する上で役立ちます。THREAD(*SERIALIZE) を指定すると、ほとんど の変数とすべての内部制御構造が複数のスレッドによって不正にアクセスされないよう 保護されます。スレッド・セーフ・モジュールは、モジュール内のプロシージャーに入ると ロックされ、モジュール内のプロシージャーがまだ実行していないとき はアンロックされます。このようにアクセスを逐次化すると、活動化グループ内のいずれ のモジュール内でも、活動状態になれるスレッドは一度に 1 つだけになります。た だし、複数のモジュール間で共用される記憶域のスレッド・セーフティーの取り扱いは、 まだ、プログラマーに任されています。これは、アプリケーション内にロジックを追加して 記憶域へのアクセスを同期化することによって行います。
詳細については、マルチスレッド化に関する考慮事項を参照してください。
(C) Copyright IBM Corporation 1992, 2006. All Rights Reserved.