スレッドそのものは80年代に開発され、また非同期プログラミングも歴史がそれほど短いわけではない。しかしこれらの技術は長い間パフォーマンスを求める特定の箇所にしか使われてこなかった。
応答速度への要求や家電との比較において、ソフトウェアに対する要求が急激に高まり、安全なコードを書く助けをするはずのOSや言語がこの分野に限っては遅れていると筆者は見ている。CPUのデュアルコア化が進み、マルチプロセッサマシンが普通に使われるようになれば、問題はさらに顕在化する。
これに対し、OSや言語の歩みは遅い。WindowsにおいてはCOMのスレッド問題を正しく理解している人は、ほぼ居ないに等しい。マイクロソフトは、.NETによってその複雑性を解消したわけだが、言語として、あるいはWindows全体としてはまだいろいろな問題をはらんでいる。2006年のLonghornで解決へ向けた取り組みが見られるが、それでもこれから5年や10年はプログラマーの努力によって問題を解決することになるだろう。
安易に使わない、きちんとした知識を身につける、そしてほかの部分よりも深いコードレビューといった、地道な努力が必要になる分野だ。本稿が少しでもその助けになることを願う。
Copyright © ITmedia, Inc. All Rights Reserved.