活锁和死锁的区别(个人认知)

本文通过比喻解释了操作系统中死锁和活锁的概念。死锁是两个或多个线程互相等待对方释放资源,导致无法继续执行。而活锁则是线程在无法获取所需资源时,不断尝试并导致无尽的状态切换,最终无法推进工作。尽管活锁有可能自行解开,但这种情况并不常见。理解这些概念对于避免和解决并发问题至关重要。
摘要由CSDN通过智能技术生成

死锁

A B死对头接项目干活,却互相占有需要的工具,此工具唯一,倚天剑屠龙刀,都不撒手,都不想让,那你我都睡大觉,谁也别干。等对方啥时候撒手了,再让中介去通知把我叫醒,工具到了再干活。
这是属于二人家里有矿,没工具没法赚钱那就回家养老的情况。
总结: 线程一直阻塞,不会被唤醒。

活锁

A B死对头接项目干活,却互相占有需要的工具,此工具可能不唯一,可能别人比如C也有,都不撒手,都不想让,重点来了,么工具咋干活,干不了我就装模做样干白活,一边假装干活一边和对面火拼要工具并且势均力敌,相持不下(但聪明的他们也会找别人要)。
在别人一直不给工具的情况下,A B横竖要不来,很着急:虽然可以干白活,但是没进度咋领工资?于是睡觉就成了问题,开始24小时为了老板的项目想办法。
这是属于二人想尽各种办法可是项目毫无进展的可怜打工人情况。
可是突然有一天贵人C将工具贡献出来了,那A B就终于可以推进项目了。
总结: 线程切换各种状态想取得资源可是仍然获得不到,最后进行不下去。但是有几率解锁哦。

声明

在粗略了解操作系统基础的时候在活锁,死锁的理解上卡住了。
查了一圈暂且这么理解了。
不知道对不对。
理解有误的话希望大家可以给我指正,求大佬们指教。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值