10.2.3.2 マルチスレッド/マルチコンテキストATMIアプリケーションの問題点

マルチスレッドおよびマルチコンテキストATMIアプリケーションには、以下の問題点があります。

  • コーディングの難しさ

    マルチスレッドおよびマルチコンテキスト・アプリケーションのコーディングは簡単ではありません。このようなアプリケーションのコーディングは、十分な経験を持つプログラマだけが行う必要があります。

  • デバッグの難しさ

    マルチスレッド・アプリケーションまたはマルチコンテキスト・アプリケーションで発生したエラーを再現することは、シングル・スレッドおよびシングル・コンテキスト・アプリケーションで再現するより難しい作業です。そのため、エラー発生時にその根本的な原因を特定して検証することがさらに難しくなります。

  • 同時実行性の管理の難しさ

    スレッド間の同時実行性の管理は難しい作業であり、アプリケーションで新たに問題を引き起こす可能性があります。

  • テストの難しさ

    マルチスレッド・アプリケーションのテストは、シングル・スレッド・アプリケーションのテストより難しい作業です。問題がタイミングに関連していることが多く、再現が困難だからです。

  • 既存コードの移植の難しさ

    既存のコードでマルチスレッドとマルチコンテキストを使用するには、大部分のコードを再構築しなければなりません。プログラマは、次の作業を行う必要があります:

  • 静的変数を削除します
  • スレッド・セーフではないすべての関数呼出しを置き換えます。
  • スレッド・セーフではないその他のコードを置き換えます。

    移植が完了したら何度もテストを繰り返す必要があり、マルチスレッドおよびマルチコンテキスト・アプリケーションの移植には多くの作業が必要になります。