有人可以用C ++中的两个线程示例给我一个简单的死锁
答案 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,则这两个线程都不能继续经过第二次锁定获取。