死锁发生的四个必要条件:
1,资源的互斥,即同一个资源只允许一个线程拥有。
2,循环等待,两个线程彼此都不会主动释放自己拥有的锁(即线程只是sleep,而不是wait)
3,不可强制夺取,两个线程彼此没有优先级,不会强制夺取他人的锁
4,循环条件,两个线程之间会形成A等待B的锁,B等待A的锁。
破除方法:是其中一个不成立即可。
死锁发生的四个必要条件:
1,资源的互斥,即同一个资源只允许一个线程拥有。
2,循环等待,两个线程彼此都不会主动释放自己拥有的锁(即线程只是sleep,而不是wait)
3,不可强制夺取,两个线程彼此没有优先级,不会强制夺取他人的锁
4,循环条件,两个线程之间会形成A等待B的锁,B等待A的锁。
破除方法:是其中一个不成立即可。