-1

誰かが私に 2 つのスレッドの単純なデッドロックを見せてくれませんか C++ の例

4

1 に答える 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 に答える