死锁

造成死锁的原因可以概括成三句话:

  • 当前线程拥有其他线程需要的资源

  • 当前线程等待其他线程已拥有的资源

  • 都不放弃自己拥有的资源

避免死锁可以概括成三种方法:

  • 固定加锁的顺序(针对锁顺序死锁)

  • 开放调用(针对对象之间协作造成的死锁)

  • 使用定时锁-->tryLock()

    • 如果等待获取锁时间超时,则抛出异常而不是一直等待

原文地址:https://www.cnblogs.com/yjh1995/p/13514676.html