死锁形成的四个必要条件
假如我的这个流程是这样的:
登记和最终统计是一个站点:登记---->抽血站--->验血站---->最终结果统计
每个站点最多有一个人,并且等待的过程中,人不会进入下一个站点
第一个条件:互斥条件
资源具有排他性,一个资源在一段时间内能且只能被一个线程所占有;其它的线程必须等待
每个站点最多一个人就是互斥条件
第二个条件:持有并等待
当我抽完血,验血站有人,我需要在抽血站中等待,这个叫持有等待
第三个条件:不可剥夺性
其它线程不能够强行剥夺已经被其它线程所占有的资源的执行权
在某个站点有人,其它人不能将人赶出去这个叫不可剥夺性
第四个条件:循环等待
当人有挺多
因为统计站点和登记站点是一个站点
当所有的站点都有人,因为循环等待谁都不会释放资源的一致循环等待的最终结果就是死锁

查看14道真题和解析