4-4 同期 これまでに実装したライブラリでは、生成されたスレッドは各々ばらばらに動くことしかできなかった。 スレッド間で協調して何かの処理をおこなえるようにするためには、スレッド間の同期 (synchronization) 機構をライブラリが提供してやる必要がある。 Spin wait 例えばスレッドを3つ作って、次の3つの関数をそれぞれ実行させたとする。 int sum1 = 0, sum2 = 0; void thread1(int* array) { int i; for (i = 0; i < N / 2; ++i) sum1 += array[i]; } void thread2(int* array) { int i; for (i = N / 2; i < N; ++i) sum2 += array[i]; } int thread3() { return sum1 + s