多线程死锁的产生以及如何避免死锁

http://blog.csdn.net/ls5718/article/details/51896159#t0

一、死锁的定义

多线程以及多进程改善了系统资源的利用率并提高了系统 的处理能力。然而,并发执行也带来了新的问题——死锁。所谓死锁是指多个线程因竞争资源而造成的一种僵局(互相等待),若无外力作用,这些进程都将无法向前推进。

二、死锁产生的原因

1) 系统资源的竞争

2) 进程推进顺序非法

3) 死锁产生的必要条件

三、如何避免死锁

  1. 加锁顺序(线程按照一定的顺序加锁)
  2. 加锁时限(线程尝试获取锁的时候加上一定的时限,超过时限则放弃对该锁的请求,并释放自己占有的锁)
  3. 死锁检测
原文地址:https://www.cnblogs.com/stanljj/p/8562853.html