1.多把锁

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

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

2.死锁

线程活跃性之死锁与活锁
示例代码:
线程活跃性之死锁与活锁
检索死锁的软件:Jconsole

3.活锁

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

4.饥饿

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

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-07-31
  • 2021-09-14
  • 2021-11-17
  • 2021-09-01
  • 2021-12-24
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2021-10-17
  • 2021-06-07
  • 2021-08-23
  • 2021-12-27
  • 2021-11-07
相关资源
相似解决方案