多线程,多进程的存在改善了系统资源的利用率,并提高了系统的处理能力,并发执行也带来了新的问题。—>死锁
一、死锁定义
1、生活中的列子
两人吃饭,但只有一双筷子,
2人轮流吃(同时拥有2只筷子才能吃),
某个时候一人拿了左筷子,一人拿了右筷子,两人同时占用一个资源,等待另一个资源,
这时候甲等乙吃完并释放他所占的筷子,而乙同样等待甲吃完并释放他所占有的筷子,这样就陷入了一个死循环,谁也无法继续吃饭。这就是死锁
2、定义
指多线程因竞争资源而造成的一种僵局(互相等待)若无外力作用这些进程都将无法向前推进 。
二、死锁产生的原因
1、系统资源的竞争
2、请求和释放资源的顺序不当
进程在运行过程中