1
0
mirror of https://github.com/Snailclimb/JavaGuide synced 2025-06-16 18:10:13 +08:00

死锁的四个必要条件

必要条件中有时是进程,有时又是线程,将其都改为线程。
This commit is contained in:
18986293910 2022-03-28 09:19:27 +08:00 committed by GitHub
parent a4f84bf7a1
commit bf04a1159e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -212,9 +212,9 @@ Thread[线程 2,5,main]waiting get resource1
学过操作系统的朋友都知道产生死锁必须具备以下四个条件:
1. 互斥条件:该资源任意一个时刻只由一个线程占用。
2. 请求与保持条件:一个程因请求资源而阻塞时,对已获得的资源保持不放。
2. 请求与保持条件:一个线程因请求资源而阻塞时,对已获得的资源保持不放。
3. 不剥夺条件:线程已获得的资源在未使用完之前不能被其他线程强行剥夺,只有自己使用完毕后才释放资源。
4. 循环等待条件:若干程之间形成一种头尾相接的循环等待资源关系。
4. 循环等待条件:若干线程之间形成一种头尾相接的循环等待资源关系。
### 如何预防和避免线程死锁?