产生死锁的四个必要条件

116 阅读1分钟

1.互斥条件:一个线程一次只能被一个线程使用。 2.请求与保持:一个线程因请求资源被阻塞时,对已经获取的资源不释放。 3.不剥夺条件:进程已经获得的资源,在未使用完之前,不能强行剥夺。 4.循环等待条件:若干线程之间形成收尾相接的循环等待的资源关系。

如何避免死锁? 指定获取锁的顺序,举例如下:

  1. 比如某个线程只有获得A锁和B锁才能对某资源进行操作,在多线程条件下,如何避免死锁?
  2. 获得锁的顺序是一定的,比如规定,只有获得A锁的线程才有资格获取B锁,按顺序获取锁就可 以避免死锁!!!