PthreadIntro
19/30
【テロップ】
※各テロップ文字をクリックすると該当の場所がピンポイントで閲覧できます。
【ノート】
しかし、スレッドエーの中の1,2,3及び、スレッドbの中の1,2,3はこの順に進みますが、スレッドエーとスレッドbの実行順序は独自です。 例えば、この図のような順序で実行が進むこともありえます。 まず、スレッドえーから、2が読みだされます。 次に、スレッドbから、2が読みだされます。スレッドaが読みだしたあたいと同じことに注意しましょう。 次に、スレッドエーで、1が加算されます。 また、スレッドbで、4が加算されます。 スレッドエーの加算結果の3がメモリに書き込まれます。 さらに、スレッドbの加算結果の6がメモリに書き込まれます。 よって、この場合は、7ではないので、望ましい実行結果にはなりません。 これは、スレッドエーが変数の更新を行っているときに、 スレッドbが並行してその変数にアクセスしたことによって問題が生じています。 そこで、排他制御、すなわち、スレッドが他のスレッドを排他することができる仕組みを導入してこの問題を阻止します。