Solo  当前访客:1 开始使用


线程死锁发生的原因及解决方案

原因

为了资源的数据安全,通常情况下资源只能由一个线程去访问,不能同时让多个线程去访问,使得对资源的访问变成互斥

线程拿到资源A之后,只有在任务执行完毕之后才释放对该资源的持有,

但是若是线程在任务未执行完成之前又去请求获取其他资源B,而此刻其他线程有对B资源的持有,又想要获取A资源

于是:你等我,我的你,变成了死锁

做法

  1. 设置执行线程任务Future对象的超时时间
  2. 设置同步加锁对象的ReentrantLock 的超时时间
  3. io操作时,如socket连接的超时时间
  4. jconsole 去检测死锁

标题:线程死锁发生的原因及解决方案
作者:temp12138
地址:https://solo.mfyzl.icu/articles/2024/03/20/1710925323475.html

标签:
新一篇: 三毛说:世间没有任何东西属于你,唯有自己高兴了,才是生活 旧一篇: 限流熔断处理模式