マルチスレッドのPro*C/C++アプリケーションでランタイム・コンテキストを使用した2つの可能なモデルを次に示します。
単一のランタイム・コンテキストを共有する複数のスレッド
複数のランタイム・コンテキストを使用する複数のスレッド
いずれのモデルを使用した場合も、複数のスレッドで同時に1つのランタイム・コンテキストを共有することはできません。複数のスレッドで同じランタイム・コンテキストを同時に使用すると、ランタイム・エラーが発生します。
図11-2は、マルチスレッド環境で実行されるアプリケーションを示しています。1つ以上のSQL文を処理するために、様々なスレッドが1つのランタイム・コンテキストを共有します。この場合も、同時に複数のスレッドでランタイム・コンテキストを共有することはできません。図11-2のmutexは、同時使用を防ぐ方法を示しています。
図11-2
図GUID-E229DBD7-C69B-4C5D-8F81-C095D0F07634-print.epsの説明 スレッド間のコンテキスト共有
図11-3に、複数のランタイム・コンテキストを使用して複数スレッドを実行するアプリケーションを示します。この場合、各スレッドは専用のランタイム・コンテキストを使用するため、アプリケーションにはmutexは必要ありません。