マルチスレッドアプリケーションでは,レースコンディション問題が発生する可能性がある。レースコンディション問題とは,暫くの間不変に保たれているはずの何らかの条件が他者の干渉によって変えられてしまう不具合のことである。マルチスレッドプログラミングの場合は,同時にアクセスされることを想定していなかった変数に対して実際には複数スレッドから並行でアクセスが行われてしまったなどの場合にこうした問題が起こる。 リスト1を見ていただきたい。このサンプルコードは100で初期化された変数iを,並列で動作する2つのスレッドからそれぞれ100 ずつ値を増やし最終的な値を表示するというものである。4 〜 6 行目でThreadTest クラスを本体とする2 つのスレッドを生成し,7 〜 8 行目で,各々のスレッドの処理をstart( )メソッドにより起動している。start( )メソッドが実行されると各スレッドでは