Revised: Mar./23rd/2002
ここまでみてきたスレッドは、お互いに独立した非同期のものでした。しかし、マルチスレッドでデータを共有する場合などには、スレッドの制御フローが独立していては困ることがあります。
一つのフィールドに対して複数のスレッドが同時にアクセスする可能性がある場合、その順番によっては整合性が保てなくなる可能性があるからです。例えば、一つのスレッドが書き込み、別のスレッドがそれを読み取るような場合、この順番が逆転すると整合性がとれなくなります。
このように、複数のスレッドでデータを共有する場合は、スレッドの同期化 (synchronizing) を行います。本節では、スレッドの同期化について紹介します。