如何避免死锁呢? 作者: 网管 时间: 2023-06-09 分类: stackoverflow经典问题 如何避免死锁呢?产⽣死锁的有四个必要条件:互斥条件、持有并等待条件、不可剥夺条件、环路等待条件。避免死锁,破坏其中的一个就可以。消除互斥条件这个是没法实现,因为很多资源就是只能被一个线程占用,例如锁。消除请求并持有条件消除这个条件的办法很简单,就是一个线程一次请求其所需要的所有资源。消除不可剥夺条件占用部分资源的线程进一步申请其他资源时,如果申请不到,可以主动释放它占有的资源,这样不可剥夺这个条件就破坏掉了。消除环路等待条件可以靠按序申请资源来预防。所谓按序申请,是指资源是有线性顺序的,申请的时候可以先申请资源序号小的,再申请资源序号大的,这样线性化后就不存在环路了。 标签: java, Java面试题, 操作系统, Java问题合集, Java编程, Java问题精选, Java常见问题, 操作系统面试题