マルチスレッド・アプリケーションでは、共有のアドレス空間で複数のスレッドが実行されます。スレッドはプロセス内で実行される軽量のサブプロセスです。コードとデータ・セグメントは共有しますが、独自のプログラム・カウンタ、マシン・レジスタおよびスタックがあります。グローバル変数と静的変数はすべてのスレッドに共通であり、通常、アプリケーション内の複数のスレッドからこれらの変数へのアクセスを管理するには、相互排他メカニズムが必要です。 Mutexは、データの整合性が保たれることを保証する同期化メカニズムです。
mutexの詳細は、マルチスレッドの説明を参照してください。マルチスレッド・アプリケーションの詳細は、スレッド・ファンクションのマニュアルを参照してください。
Pro*C/C++プリコンパイラは、マルチスレッドのOracleサーバー・アプリケーションの開発を(マルチスレッド・アプリケーションをサポートするプラットフォームで)サポートします。サポートされている機能は次のとおりです。
スレッド・セーフなコードを生成するコマンドライン・オプション
マルチスレッド処理をサポートする埋込みSQL文およびディレクティブ
スレッド・セーフなSQLLIBと、その他のクライアント側Oracleライブラリ
注意:
プラットフォームによりサポートするスレッド・パッケージが異なるため、使用しているプラットフォーム固有のOracleマニュアルを参照して、Oracleがスレッド・パッケージをサポートしているかを調べてください。
次の各項目では、前述の機能を使用してマルチスレッドのPro*C/C++アプリケーションを開発する方法を説明します。
マルチスレッド・アプリケーションのランタイム・コンテキスト
ランタイム・コンテキストを使用する2つのモデル
マルチスレッド・アプリケーションのユーザー・インタフェース
Pro*C/C++を使用してマルチスレッド・アプリケーションを作成する場合のプログラミング上の考慮事項
マルチスレッドのPro*C/C++アプリケーションの例