誰かが私に 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   に答える