死锁与递归锁
进程也是有死锁的
所谓死锁: 是指两个或两个以上的进程或线程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,
它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程,
如下就是死锁
1 死锁------------------- 2 from threading import Thread,Lock,RLock 3 import time 4 mutexA = Lock() 5 mutexB = Lock() 6 class MyThread(Thread): 7 def run(self): 8 self.f1() 9 self.f2() 10 def f1(self): 11 mutexA.acquire() 12 print('\033[33m%s 拿到A锁 '%self.name) 13 mutexB.acquire() 14 print('\033[45%s 拿到B锁 '%self.name) 15 mutexB.release() 16 mutexA.release() 17 def f2(self): 18 mutexB.acquire() 19 print('\033[33%s 拿到B锁 ' % self.name) 20 time.sleep(1) #睡一秒就是为了保证A锁已经被别人那到了 21 mutexA.acquire() 22 print('\033[45m%s 拿到B锁 ' % self.name) 23 mutexA.release() 24 mutexB.release() 25 if __name__ == '__main__': 26 for i in range(10): 27 t = MyThread() 28 t.start() #一开启就会去调用run方法