进程/线程相关
死锁Dead-lock
定义
多个进程占有彼此想要获取的资源,导致进程无法继续执行下去,一直等待彼此释放资源的状态。
死锁的条件
必要条件 1. 互斥(资源的互斥性,一次只有一个进程可以使用一个资源) 2. 占有且等待(字面意思) 3. 不可抢占(不能破坏条件2)
满足前3个必要条件再加上循环等待一起构成了充分必要条件。
死锁的预防
采用某种策略消除条件1~4中的某个条件的出现。 1. 互斥:不能被禁止。 2. 占有且等待:要求一次性请求所有需要的资源,并阻塞该进程直到所有请求都同时满足。 3. 不可抢占:占有某些资源的进程进一步申请资源被拒绝时,则释放到其最初占有的资源;其次是允许抢占。 4. 循环等待:通过定义资源类型的线性顺序来预防。若一个进程已经分配了R类型的资源,则其接下来请求的资源只能是那些排在R类型之后的资源。
Last updated
Was this helpful?