死锁

1、死锁产生的必要条件

  • 互斥条件: 一个资源只能被一个进程占用。
  • 请求与保持条件:一个进程请求资源发生阻塞,对已有资源保持不放。
  • 不剥夺条件:一个进程占有的资源,其他进程无法剥夺。
  • 循环等待条件:所有等待进程形成环路。

2、死锁产生的原因

  1. 系统资源不足
  2. 进程运行推进的顺序不当
  3. 资源分配不当

3、避免死锁的方法

  • 固定加锁的顺序(针对锁顺序死锁)
  • 开放调用(针对对象之间协作造成的死锁)
  • 使用定时锁-->tryLock()

 

参考资料:

  • 《Java核心技术卷一》
  • 《Java并发编程实战》
posted @ 2020-04-17 09:00  GSU  阅读(41)  评论(0)    收藏  举报