誰かが私に 2 つのスレッドの単純なデッドロックを見せてくれませんか C++ の例
質問する
4331 次
1 に答える
6
最も単純なものの 1 つ - これは疑似コードですが、ほとんどすべての言語に翻訳できるはずです。
スレッド 1:
acquire_lock(lockA);
... do some work ...
acquire_lock(lockB);
スレッド 2:
acquire_lock(lockB);
... do some other work ...
acquire_lock(lockA);
スレッド 1 が実行中であり、lockB をまだ保持しておらず、スレッド 2 が lockB を取得した場合、どちらのスレッドも 2 番目のロック取得を超えて続行することはできません。
于 2013-06-22T15:49:49.697 に答える