1

複数のスレッドを使用して変数をロックしようとしてWaitForSingleObject(fork[leftFork], Infinite);いますが、何もロックしていないようです

を設定してHandle fork[5]から以下のコードを使用しますが、何もロックしていないようです。

while(forks[rightFork] == 0 || forks[leftFork] == 0) Sleep(0);
WaitForSingleObject(fork[leftFork], INFINITE);
forks[leftFork]--;

WaitForSingleObject(fork[rightFork], INFINITE);
forks[rightFork]--; 

WaitForMultipleObjects私も同様に試しましたが、同じ結果です。使用するミューテックスを作成するときfork[i]= CreateMutex(NULL, FALSE,NULL);

これは各スレッドにのみ有効なのか、それとも共有するのか疑問に思っていましたか?

4

1 に答える 1