死锁的概念 1.什么是? 并发环境下,互相等待对方手里的资源导致各个进程一定都阻塞。 (例如,哲学家筷子问题。假设5个哲学家围坐一圈,每人持有一双筷子,每个人都想要自己右侧的人的筷子,并当得到自己右侧的人的筷子时再将自己原本的筷子给自己左侧的人。此时产生死锁问题。) 区分: 饥饿:长期得不到想要的资源(例如短进程优先算法) 死循环:代码逻辑错误导致一个进程发生死循环。 2.必要条件 互斥条件 不可剥夺条件 请求和保持条件 循环等待条件