阻塞型锁

1 死锁(deadlock)线程

   概念: 多个线程互相等待多方释放资源而一直没有执行进程

     通常来讲,要出现死锁问题须要知足如下条件:资源

        1. 互斥条件:一个资源每次只能被一个线程使用。it

        2. 请求与保持条件:一个进程因请求资源而阻塞时,对已得到的资源保持不放。io

        3. 不剥夺条件:进程已得到的资源,在未使用完以前,不能强行剥夺。循环

        4. 循环等待条件:若干进程之间造成一种头尾相接的循环等待资源关系。请求

只要破坏死锁 4 个必要条件之一中的任何一个,死锁问题就能被解决。阻塞

 2 活锁(livelock): 多个线程都释放资源给别的线程使用,致使没有线程拿到资源而正常执行

 3 优先级反转(priority inversion) :一个或多个线程由于种种缘由没法获取所得的须要资源,致使一直没法执行。致使的缘由每每是当前线程优先级不高致使没有资源,或某线程一直占着关键资源不放

相关文章
相关标签/搜索