PythonPython

Python并发编程中关于死锁,递归锁,信号量的理解

2019-07-21  本文已影响35人  我爱学python

并发编程中关于死锁,递归锁,信号量的理解

1.死锁****

​ 所谓死锁: 是指两个或两个以上的进程或线程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程,如下就是死锁

​ 产生死锁的情况:1.对一把互斥锁加锁多次

​ 2.一个共享资源 要访问必须同时具备多把锁,但是这些锁被不同线程或进程所持有 , 就会导致相互等待对方释放 从而程序就卡死了

2.递归锁

​ 特点:1.多线程之间都有互斥的效果,不同在于,同一个线程可以对同一个锁进行多次acquire

​ 2.同一个线程必须保证加锁和解锁次数相同,其他线程才能够抢到这把锁

3.信号量

​ 可以限制同时并发执行公共代码的线程数量,如果限制数量为1,则与普通互斥锁没有区别

上一篇下一篇

猜你喜欢

热点阅读