【发布时间】:2013-06-22 15:42:23
【问题描述】:
谁能给我看一个简单的死锁,在C++中有两个线程示例
【问题讨论】:
标签: multithreading visual-c++ pthreads deadlock
谁能给我看一个简单的死锁,在C++中有两个线程示例
【问题讨论】:
标签: multithreading visual-c++ pthreads deadlock
其中一个最简单的 - 它是伪代码,但您应该能够将其翻译成几乎任何语言:
线程 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,则两个线程都不能在第二次获取锁之后继续。
【讨论】: