有人可以用C ++中的两个线程示例向我展示一个简单的死锁

时间:2013-06-22 15:42:23

标签: multithreading visual-c++ pthreads deadlock

有人可以用C ++中的两个线程示例给我一个简单的死锁

1 个答案:

答案 0 :(得分:6)

最简单的一个 - 它是伪代码,但您应该能够将其翻译成几乎任何语言:

主题1:

 acquire_lock(lockA);
   ... do some work ...
 acquire_lock(lockB);

主题2:

acquire_lock(lockB);
  ... do some other work ...
acquire_lock(lockA);

如果第一个线程正在执行并且还没有持有lockB并且线程2获取了lockB,则这两个线程都不能继续经过第二次锁定获取。