C言語なら俺に聞け(入門篇) Part 13
■ このスレッドは過去ログ倉庫に格納されています
0430デフォルトの名無しさん
2007/05/27(日) 16:59:38オブジェクトってのは変数とか関数の事でしょうか?前提知識が少なくてすみません。
デッドロックについて調べたのですが、具体的にどんな状況で起こるかが分かりませんでした。
スレッドAでグローバル変数X、Yに対して X++; Y++; という操作を、
スレッドBで Y++; X++; という操作をミューテックスで排他制御をした場合を考えたとき、
スレッドAでXにアクセスした瞬間に、スレッドBがYにアクセスした時に、お互いの終了待ちを待つ
デッドロックが起こるのでしょうか?
私の感覚だと、スレッドAがXにアクセスする直前にWaitForSingleObject()を行った時点で、
AがReleaseMutex()をするまでスレッドBは変数Yにすらアクセス出来ない感じなのですが。
スレッドA
WaitForSingleObject()
X++;
Y++;
ReleaseMutex()
スレッドB
WaitForSingleObject() //スレッドAがReleaseMutex()するまでココで待機
X++;
Y++;
ReleaseMutex()
>>427
strtok()って便利そうな関数があるんですねw
これと排他制御を組み合わせるとどうなるか、考えるにはちょっとまだ俺の頭が足りないようです・・・
■ このスレッドは過去ログ倉庫に格納されています