当前位置: 首页 > news >正文

安卓面试题多线程 96-100

96. 简述notify()和notifyAll()有什么区别 ?
notify可能会导致死锁,而notifyAll则不会任何时候只有一个线程可以获得锁,也就是说只有一个线程可以运行synchronized 中的代码
使用notifyall,可以唤醒 所有处于wait状态的线程,使其重新进入锁的争夺队列中,而notify只能唤醒一个。
wait() 应配合while循环使用,不应使用if,务必在wait()调用前后都检查条件,如果不满足,必须调用notify()唤醒另外的线程来处理,自己继续wait()直至条件满足再往下执行。
notify() 是对notifyAll()的一个优化,但它有很精确的应用场景,并且要求正确使用。不然可能导致死锁。正确的场景应该是 WaitSet中等待的是相同的条件,唤醒任一个都能正确处理接下来的事项,如果唤醒的线程无法正确处理,务必确保继续notify()下一个线程,并且自身需要重新回到WaitSet中.
🚀🚀🚀🚀🚀🚀
97. 简述Java中interrupted 和 isInterruptedd方法的区别? ?
interrupted() 和 isInterrupted()的主要区别是前者会将中断状态清除而后者不会。Java多线程的中断机制是用内部标识来实现的&#
http://www.lryc.cn/news/321326.html

相关文章:

  • 第二十六章 配置 Web Gateway 的默认参数
  • npm i安装依赖报错,但是cnpm i 却安装成功
  • C语言经典算法-9
  • React 19的变化
  • Kafka整理-Kafka与传统消息队列系统(如RabbitMQ, ActiveMQ)的区别是什么?
  • 汽车电子零部件(8):T_Box
  • 数库据设计最佳实践
  • ESSBAE 数据挖掘
  • 在Linux/Ubuntu/Debian中使用iFuse访问iOS 设备(例如 iPhone 或 iPad)上的文件可双向复制粘贴
  • 驱动开发中的DMA是什么
  • websocket 升级协议时的协议切换点
  • 在Linux中开发C++
  • 【linux】Debian访问Debian上的共享目录
  • Postman Newman API 自动化测试快速入门
  • Python之Web开发中级教程----ubuntu安装MySQL
  • Flutter开发入门——路由
  • Acrobat Pro DC 2023:PDF编辑与管理的全新体验
  • Linux课程_____网络管理
  • ubuntu20.04_PX4_1.13
  • 12350安全生产举报热线系统解决方案
  • Java 多线程(超详细讲解)上篇
  • 15届蓝桥杯备赛(2)
  • 使用Vuex构建网络打靶成绩管理系统及其测试页面平台思路
  • CPU的核心数与线程数对性能的影响是什么
  • Web前端-HTML
  • 【LLMs+小羊驼】23.03.Vicuna: 类似GPT4的开源聊天机器人( 90%* ChatGPT Quality)
  • 详细了解CSS
  • Java基础-IO流
  • MySQL的基本概念
  • 如何入职车载测试