Jtest -Java対応自動テストツール-
今月のピックアップ
Parasoft Jtest 8.4 技術資料 「マルチスレッドプログラミング」
今回は、2009年夏に日本語版のリリースを予定しているJtest 8.4 で強化されたマルチスレッドプログラム開発をサポートする静的解析ルールについて紹介します。マルチスレッドプログラムは、マルチコアCPUが普及している現在ではCPUリソースを有効に活用でき、パフォーマンス向上を期待できるメリットがありますが、開発に注意を要することでも知られています。
また、安全なマルチスレッドプログラムを作成することは、セキュリティの観点でも重要なポイントです。不適切なスレッド同期は同時実行性の問題を引き起こし、アプリケーションの予期しない振る舞いを招く可能性があり、それがセキュリティに影響を与える可能性もあります。
また、安全なマルチスレッドプログラムを作成することは、セキュリティの観点でも重要なポイントです。不適切なスレッド同期は同時実行性の問題を引き起こし、アプリケーションの予期しない振る舞いを招く可能性があり、それがセキュリティに影響を与える可能性もあります。
背景
シングルコアCPUの性能向上(クロック数の増加)は限界を迎え、CPUベンダはコアを増やす戦略を選択しました。私たちの周りでも、マルチコアCPUを搭載したマシンは珍しくない状況です。
とはいえ、CPUクロック数があまり変わらないことから考えると、CPUコアが増えたからといって既存のプログラムの処理速度が向上するわけではありません。 なぜならば、そのプログラムがマルチスレッドで並列に動作しなければ、マルチコアCPUのメリットを得ることができないからです。
つぎはマルチスレッドプログラムの動作イメージです。
とはいえ、CPUクロック数があまり変わらないことから考えると、CPUコアが増えたからといって既存のプログラムの処理速度が向上するわけではありません。 なぜならば、そのプログラムがマルチスレッドで並列に動作しなければ、マルチコアCPUのメリットを得ることができないからです。
つぎはマルチスレッドプログラムの動作イメージです。
たとえば、既存のプログラム(シングルスレッド)をマルチコアCPU搭載の最新マシンで実行したとしても、CPU資源を有効に活用できず、処理速度の向上はあまり見込めないかもしれません。
将来的に、あらたに作成するプログラム、または既存のプログラムはマルチスレッド化する必要に迫られる可能性があり、今後、開発者が直面する問題のひとつとして考えられます。
将来的に、あらたに作成するプログラム、または既存のプログラムはマルチスレッド化する必要に迫られる可能性があり、今後、開発者が直面する問題のひとつとして考えられます。











