线程死锁

当两个线程互相等待对方释放锁的时候 就会发生死锁 (两个小孩互换玩具 ,双方等待对方先给玩具)

出现死锁后不会出现异常 不会出现提示 只是所有的线程都处于阻塞状态,无法继续。

多线程编程时应该注意避免死锁的发生。

线程同步的另一个弊端就是死锁现象,死锁繁盛通常的原因就是同步嵌套,同步里面还有同步,两个同步用的不是同一把锁。

出现死锁的四个条件:
1.互斥条件,资源不能共享,只能被一个线程使用
2.请求与保持条件, 已经得到资源的线程还可以申请新的资源
3.非剥夺条件:已经分配到资源(锁) 不能再相应线程强行夺取。
4.循环等待 : 在系统中若干线程形成环路,在环路中每个线程都等待相邻线程的资源。

你可能感兴趣的:(线程死锁)