Java多线程并发
并发相关知识及面试题
零一熊
这个作者很懒,什么都没留下…
展开
-
死锁的四个必要条件
死锁的四个必要条件:1.互斥:一个资源一次只允许一个进程访问2.占有且等待:一个进程占用资源的同时,需要等待另一个进程释放的资源3.不可抢占:一个进程不能抢占其它进程所拥有的自己需要的资源4.循环等待:存在一个进程链,每个进程都占有着下一个进程所需要的资源...原创 2021-07-06 19:57:19 · 102 阅读 · 0 评论 -
死锁的检测
死锁的检测:实现算法:需要记录可利用资源向量,每个进程的已分配资源,每个进程的请求资源原理:标记所有没有死锁的进程1.标记所有已分配资源全为0的进程2.查找一个下标i,满足i是未标记且进程i每个请求资源都能被可利用资源满足,若找不到,结束算法3.若找到了某个i,将其标记,并将其已分配资源返还到可利用资源中,重复步骤2...原创 2021-07-06 19:58:22 · 151 阅读 · 0 评论 -
如何避免死锁
如何避免死锁:1.预防死锁–针对死锁的必要条件进行预防破坏占有且等待条件,一次性申请进程所需要的所有资源。改进:允许进程只获得运行初期的资源,在运行过程中逐步释放使用完毕的资源,申请需要的资源。破坏不可抢占条件:当一个进程申请需要的资源没有被满足时,释放掉所占有的所有资源。破坏循环等待条件:给每个资源编号,当一个进程占有某个资源时,只能申请比这个编号大的资源2.避免死锁–在分配资源之前判断是否会出现死锁若一个进程的请求会导致死锁,则不启动。若一个进程的增加资源会导致死锁,则不启动。实现:银行原创 2021-07-06 19:57:55 · 6613 阅读 · 0 评论 -
死锁的解除
死锁的解除:1.抢占资源:从其它进程中抢占足够的资源分配给死锁进程,直至死锁解除2.终止进程:终止所有死锁进程逐步终止死锁进程同时检测当前系统是否还处于死锁状态(根据进程的优先级,进程已运行时间以及完成还需要的时间,进程已占用的资源,完成进程还需要的资源等等判断先终止哪个进程)...原创 2021-07-06 20:38:15 · 305 阅读 · 0 评论