以下个人理解,请各位前辈多多指教:

死锁:

① 互斥条件:指进程对所分配到的资源进行排它性使用,在一段时间内某资源只由一个进程占用,如果此时还有其他进程请求资源,则请求者只能等待,直至占有资源的进程被释放。

② 请求和保持条件:指进程已经保持至少一个资源,但又提出了新的资源请求,而该资源已被其它进程占有,此时请求进程阻塞,但又对自己已获得的其它资源保持不放。

③ 不剥夺条件:指进程已获得的资源,在未使用完之前,不能被剥夺,只能在使用完时由自己释放。

④环路等待条件:在发生死锁时,必然存在一个进程,资源的唤醒链,即进程集合{P0,P1,P2,···,Pn}中的P0正在等待一个P1占用的资源;P1正在等待P2占用的资源,……,Pn正在等待已被P0占用的资源。

解释:

线程A或者B需要过独木桥(使用该进程),而C还没有走完(进程还在占用),于是三方僵死;

也可以是没有C 的情况下,A和B互不礼让僵死.

A和B都认为自己优先级较高应该使用该进程.

活锁:

活锁指的是任务或执行者没有被阻塞,由于某些条件没有满足,导致一直重复尝试,失败。活锁和死锁的区别在于,处于活锁的实体在不断的改变状态,而处于死锁的实体表现为等待,活锁有可能自行解开,死锁则不能。

解释:线程A和B都需要过桥(都需要使用进程),而都礼让不走(那到的系统优先级相同,都认为不是自己优先级高),就这么僵持下去.

饿死:

指一个可运行的进行尽管能继续执行,但被调度器无限期的忽视,而不能被调度执行的情况,饿死可以根据先来先服务资源分配策略来避免。

解释:

这是个独木桥(单进程),桥上只能走一个人,B来到时A在桥上,B等待;

而此时比B年龄小的C来了,B让C现行(A走完后系统把进程分给了C),

C上桥后,D又来了,B又让D现行(C走完后系统把进程分个了D)

以此类推B一直是等待状态.

阻塞:

不用解释了吧?

java中活锁和死锁的区别_死锁、活锁、饿死和阻塞的个人理解相关推荐

  1. 死锁、活锁、饿死和阻塞的个人理解

    以下个人理解,请各位前辈多多指教: 死锁: ① 互斥条件:指进程对所分配到的资源进行排它性使用,在一段时间内某资源只由一个进程占用,如果此时还有其他进程请求资源,则请求者只能等待,直至占有资源的进程被 ...

  2. java中j 和 j啥区别_从字节码层次分析++j和j++的区别

    一.缘起 最近看到个面试题: int j = 0; for(int i = 0; i <100; i++) j = j++; System.out.println(j); 输出结果是0,如果换成 ...

  3. java中aop和aoc的区别_法国AOC、AOP、VDP和IGP葡萄酒有什么区别?

    原标题:法国AOC.AOP.VDP和IGP葡萄酒有什么区别? 对于大多数葡萄酒爱好者来说,AOC和波尔多都是同时认识的.很多人读不懂Bourgogne.Loire Valley或者Rhone Vall ...

  4. java中aop和aoc的区别_法国波尔多产区的葡萄酒AOC/AOP等级

    2. AOC就是法国葡萄酒最高等级吗? 在法国葡萄酒分级中,一般分为四个大的等级:VDT.VDP.VDQS.AOC(新的法国分级是:VDF.IGP.VDQS.AOP,新旧标准将在较长时间内共存,所以大 ...

  5. Java implement意思_详解JAVA中implement和extends的区别

    详解JAVA中implement和extends的区别 发布于 2020-4-14| 复制链接 摘记: 详解JAVA中implement和extends的区别extends是继承父类,只要那个类不是声 ...

  6. Java中notify和notifyAll的区别 - 何时以及如何使用

    Java  notify   vs notifyAll notify和notifyAll方法之间有什么区别是棘手的Java问题之一! Condition 是个什么玩意? 提几个问题,从问题中去了解去学 ...

  7. java中的异常种类和区别以及处理机制和区别

    java中的异常种类和区别以及处理机制和区别 按照异常需要处理的时机分为编译时异常(也叫强制性异常)也叫 CheckedException 和运行时异常(也叫非强制性异常)也叫 RuntimeExce ...

  8. java中ArrayList和LinkedList的区别

    首先来看ArrayList和LinkedList的集成类和接口的区别.// lang java public class ArrayList<E> extends AbstractList ...

  9. java中Runnable和Callable的区别

    文章目录 运行机制 返回值的不同 Exception处理 java中Runnable和Callable的区别 在java的多线程开发中Runnable一直以来都是多线程的核心,而Callable是ja ...

最新文章

  1. (拆点+最小路径覆盖) bzoj 2150
  2. Oracle Database 10g:删除表
  3. Linux命令(7):less命令
  4. 2012 Stackoverflow meetup at Shanghai PRC
  5. 前瞻:Java能否畅行未来?
  6. UNIX网络编程——sockatmark函数
  7. 万兆网卡实际吞吐量_案例探索 | 千兆/万兆网卡每秒转发包数处理能力上限到底有多大?...
  8. 行为设计模式 - 解释器设计模式
  9. environment variable is too large 2047
  10. Android Window/Window Z-Order/Surface/SurfaceView
  11. 高效记忆/形象记忆(05)110数字编码表 0-9
  12. xposed框架定位修改怎么用_硬核!教你三种方法,实现微信自定义修改地区!
  13. 母亲节是在每年五月份的第二个星期日,给定年份,求出当年母亲节的日期
  14. Golang-Beego(go mod)
  15. 分享111个HTML医疗保健模板,总有一款适合您
  16. 软件界面中一些易混淆/易用错的界面文案,以及一些约定俗成的文案约定
  17. android刘海屏高度适配,Android刘海屏的适配
  18. java 获取微信头像和昵称 生成图片
  19. 眼动数据分析(基于EyeLink眼动仪数据)
  20. Google收购摩托罗拉移动

热门文章

  1. 过拟合与模型调优(part2)--重抽样技术
  2. 走近分形与混沌(part13)--自然现象就其本质来说,是复杂而非线性的
  3. SPL - 写着简单跑得又快的数据库语言
  4. SAP Spartacus 支持 Vue 吗?
  5. SAP Cloud Application Programming 介绍(2021 更新版)
  6. Angular应用 vendor.js里的magic number 16384是什么含义
  7. 一个简单的例子学习 HTML 元素property和attribute的区别
  8. SAP Fiori OData取数据的同步模式和异步模式比较
  9. Java和ABAP里的外部类和内部类
  10. SAP UI5 Web Component不同React页面的跳转实现