死锁

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

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

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

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

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

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

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

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

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

posted @ 2020-08-16 22:09  huiyii  阅读(70)  评论(0编辑  收藏  举报