死锁(面试题)死锁原因及解决死锁

本文介绍了死锁的概念,分析了产生死锁的原因,包括竞争资源和进程间推进顺序非法,并列举了死锁发生的四个必要条件。接着讨论了解决死锁的基本方法,包括预防、避免、检测和解除死锁的策略,如资源一次性分配、银行家算法、Jstack和JConsole工具的使用等。
摘要由CSDN通过智能技术生成

一、什么是死锁。

二、产生死锁的原因。

三、产生死锁的四个必要条件。

四、解决死锁的方法。

什么是死锁

        所谓死锁,是指多个进程在运行过程中因争夺资源而造成的一种僵局,当进程处于这种僵持状态时,若无外力作用,它们都将无法再向前推进。

        因此我们举个例子来描述,线程A持有锁a,线程B持有锁b;而A又等待获取锁b,B又等待获取a,而此时的锁a锁b被A,B占据。如下图:

产生死锁的原因

可分为如下两点:

竞争资源

系统中的资源可以分为两类:
1、可剥夺资源,是指某进程在获得这类资源后,该资源可以再被其他进程或系统剥夺,CPU和主存均属于可剥夺性资源;
2、另一类资源是不可剥夺资源,当系统把这类资源分配给某进程后,再不能强行收回,只能在进程用完后自行释放,如磁带机、打印机等。
        产生死锁中的竞争资源之一指的是竞争不可剥夺资源(例如

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值