【说站】java线程锁死是什么
2023-06-13 09:13:15 时间
java线程锁死是什么
1、说明
线程锁死是指等待线程由于唤醒其所需的条件永远无法成立,或者其他线程无法唤醒这个线程而一直处于非运行状态(线程并未终止)导致其任务 一直无法进展。
2、线程锁死分为两种:
(1)信号丢失锁死:信号丢失锁死是因为没有对应的通知线程来将等待线程唤醒,导致等待线程一直处于等待状态。
典型例子是等待线程在执行Object.wait( )/Condition.await( )前没有对保护条件进行判断,而此时保护条件实际上可能已经成立,此后可能并无其他线程更新相应保护条件涉及的共享变量使其成立并通知等待线程,这就使得等待线程一直处于等待状态,从而使其任务一直无法进展。
(2)嵌套监视器锁死:嵌套监视器锁死是由于嵌套锁导致等待线程永远无法被唤醒的一种故障。
比如一个线程,只释放了内层锁Y.wait(),但是没有释放外层锁X; 但是通知线程必须先获得外层锁X,才可以通过 Y.notifyAll()来唤醒等待线程,这就导致出现了嵌套等待现象。
以上就是java线程锁死的介绍,希望对大家有所帮助。更多Java学习指路:Java基础
相关文章
- java用什么软件_Java编程什么软件最好用?
- java线程池的面试题_献给准备面试的你,Java线程and线程池面试题小结「建议收藏」
- java和基岩版区别_我的世界基岩版与Java版有什么区别?「建议收藏」
- java集合类面试题_Java集合类相关面试题
- 说一下java的运行机制_Java运行机制是什么?「建议收藏」
- java标识符是什么_Java 标识符「建议收藏」
- java后端开发需要学什么_从事Java后端开发,要学习哪些知识和技能?[通俗易懂]
- MySQL字段类型如何转为java_Java JDBC中,MySQL字段类型到JAVA类型的转换
- Java转换流_java中的字符使用什么编码
- Java多线程系列—线程通信机制wait notify notifyAll(03)
- callable线程使用_java线程结束用什么方法
- java 测试程序代码运行时间过长_Java测试
- Java中的线程池
- 【Java】什么是线程?Thread和Runnable区别
- Java 线程池框架核心代码分析详解编程语言
- java 线程池 spring线程池 多线程知识总结详解编程语言
- 玩转Linux:Java开发入门指南(linux上开发java)
- 策略利用Redis Java实现有效的过期策略(redisjava过期)
- key清理利用Java程序批量清理Redis中过期Key(redisjava过期)
- Linux系统中下载Java的方法(linux下java下载)
- 使用Java类连接MSSQL数据库(mssql连接java类)
- 从Java到Oracle轻松操作数据库(java写oracle库)