线程和进程
进程:是系统进行资源分配和调度 的基本单位
线程:是被系统调度和CPU调度的基本单位
一个进程可以包含多个线程,一个线程只能属于一个进程
死锁的产生
相互等待共同的资源而产生一种僵持状态,如果没有外力干预,将一直维持这个状态
打个比方,假设有P1和P2两个进程,都需要A和B两个资源,现在P1持有A等待B资源,而P2持有B等待A资源,两个都等待另一个资源而不肯释放资源,就这样无限等待中,这就形成死锁
竞争可消耗资源引起死锁
有p1,p2,p3三个进程,p1向p2发送消息并接受p3发送的消息,p2向p3发送消息并接受p2的消息,p3向p1发送消息并接受p2的消息,如果设置是先接到消息后发送消息,则所有的消息都不能发送,这就造成死锁。
产生死锁的条件
- 互斥条件
- 请求和保持条件
- 不可抢占条件
- 循环等待条件
处理死锁
- 预防死锁
- 避免死锁
- 监测死锁
- 接触死锁