1
0
mirror of https://github.com/Snailclimb/JavaGuide synced 2025-06-25 02:27:10 +08:00

Merge pull request #1645 from 18986293910/patch-1

死锁的四个必要条件
This commit is contained in:
Guide 2022-03-29 20:07:55 +08:00 committed by GitHub
commit 87ad2cdca7
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. 循环等待条件:若干线程之间形成一种头尾相接的循环等待资源关系。
### 如何预防和避免线程死锁?