-
使用固定顺序获取锁,就是让两个互斥量总以相同的顺序上锁
thread1 thread2
mutex1 mutex2
A B
B A -
避免像个线程相互等待
thread1 thread2
join(id1) join(id2) -
避免嵌套锁
一个线程已经获得一个锁时,再别去获取第二个锁,
因为一个线程只有一个锁,锁上就不会产生死锁; -
避免在持有锁时调用用户提供的代码
代码是用户提供的,用户程序可能做任何事情,包括获取锁,
在持有锁的情况下,调用用户提供的代码,如果用户代码获取了锁,就可能造成死锁;
linux C 避免死锁
最新推荐文章于 2023-04-27 22:38:32 发布