Java面试八股之什么是死锁

  1. 什么是死锁

死锁(Deadlock)是多线程编程中的一种常见问题,特别是在涉及到资源共享和同步的时候。具体来说,死锁是指两个或两个以上的线程在执行过程中,由于互相持有并等待对方释放的资源,而导致所有线程都无法继续执行的现象。这种情况形成了一个相互依赖的循环等待资源的状态,如果没有外部干预,这些线程将永远保持阻塞状态,无法自行恢复执行。

死锁发生的四个必要条件如下:

互斥条件:资源不能被多个线程同时使用,只能被一个线程占用。

占有并等待条件:已经持有至少一个资源的线程,又尝试去获取额外的资源。

不可抢占条件:已分配给某个线程的资源在该线程释放之前,不能被其他线程强行夺取。

循环等待条件:存在一种线程资源的循环等待链,每个线程都持有下一个线程所需的资源,并等待前一个线程释放资源。

为了避免死锁,可以采取以下策略:

破坏互斥条件:尽量减少对独占资源的需要,但这在很多情况下不现实。

破坏占有并等待条件:要求线程一次性申请所有需要的资源,如果不能全部获得,则不占用任何资源。

破坏不可抢占条件:允许抢占,即当线程需要的资源被其他线程占用时,可以强制释放其他线程占用的资源。

破坏循环等待条件:对资源进行排序,并强制所有线程按照相同的顺序请求资源,这样可以避免形成循环等待链。

 如果大家需要视频版本的讲解,欢迎关注我的B站:

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
目录 一、 JavaSE 部分 1、 Java 基础 ①Java 基础部分(基本语法, Java 特性等) ②关键字 ③面向对象 ④集合部分 2、 Java 高级知识 ①线程 ②锁 ③JDK ④反射 ⑤JVM ⑥GC ⑦ IO 和 NIO, AIO 二、 JavaEE 部分 1、 Spring ①IoC 与 Bean 配置、 管理 ②AOP 与事务、 权限控制 ③S2SH 整合开发 ④Spring, JPA 整合 2、 Hibernate ①ORM 与持久化映射 ②延迟加载、 性能优化 ③HQL 查询、 条件查询、 SQL 查询 ④二级缓存与查询缓存 3、 Struts ①MVC 模式与 Struts 体系 4、 mybatis 5、 MVC 框架 6、 各框架对比与项目优化 7、 JPA ①EJB 三、 Java web 开发核心内容 1、 web 编程基础 ①Tomcat 服务器NOWCODER.COM 牛客网——互联网学习求职必备神器 名企校招历年笔试面试真题, 尽在牛客网 牛客网, 互联网人都在用的学习求职神器 ②JSP 语法, EL, 内置对象 ③Listener 和 filter 2、 Web 编程进阶 ①Servlet、 标签的作用 ②redis ③MVC 和 DAO ④JSTL、 DisplayTag 等常见标签库的用法 3、 Web 编程原理 ① HTTP 协议 ②请求/相应架构原理 ③web 容器 四、 JDBC 编程 1、 SQL 基础 2、 JDBC 基础 ①数据库 ②数据库连接池 ③事物管理, 批处理 3、 JDBC 进阶 五、 XML 编程 1、 XML 基础 2、 XML 进阶 3、 Web service ①WSDL 与 SOAP 协议 六、 计算机网络 1、 网络概述 ①关于分层 2、 运输层 ①TCP 与 UDP ②协议 3、 网络层 ①网际协议 IP ②网际控制报文协议 ICMP ③因特网的路由器选择协议 4、 应用层 ①域名系统 DNS ②电子邮件NOWCODER.COM 牛客网——互联网学习求职必备神器 名企校招历年笔试面试真题, 尽在牛客网 牛客网, 互联网人都在用的学习求职神器 七、 操作系统 1、 操作系统概论 2、 进程的描述与控制 3、 输入输出系统 4、 存储器管理 5、 处理机调度与死锁 八、 算法与数据结构 1、 哈希 2、 树 3、 遍历 4、 链表 5、 数组 6、 排序 7、 堆与栈 8、 队列 9、 高级算法 九、 设计模式 1、 结构型模式 ①代理模式 ②装饰模式 ③适配器模式 2、 创建型模式 ①单例模式 3、 行为型模式 ①策略模式 ②观察者模式 4、 所有模式汇总 十、 场景题 十一、 UML

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值