线程活跃性之死锁与活锁

1.多把锁

如果对象中的方法是不相干的,此时只有一个对象锁,并发度很低;
解决办法:准备多个不相干的对象锁。

将锁的粒度细分
好处:增强并发度
坏处:当一个线程需要多把锁的时候,容易出现死锁

2.死锁

在这里插入图片描述
示例代码:
在这里插入图片描述
检索死锁的软件:Jconsole

3.活锁

两个线程互相改变对方的结束条件,最后谁也无法结束。

4.饥饿

一个线程由于优先级太低,始终得不到CPU调度执行,也不能够结束。
在解决死锁的时候使用顺序加锁的方法,即线程获取锁的时候必须按照锁的顺序来获得,这样可以避免死锁;但是顺序加锁容易导致饥饿问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值