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

安卓面试题多线程 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.kler.cn/a/274636.html

相关文章:

  • Linux网络基础--传输层Tcp协议(上) (详细版)
  • Java图片拼接
  • AI的进阶之路:从机器学习到深度学习的演变(二)
  • 【Web】0基础学Web—随机颜色、数学对象、日期及方法、定时器、倒计时
  • uni-app商品搜索页面
  • Hive内部表和外部表的区别
  • es 集群安全认证
  • 【SpringSecurity】十三、基于Session实现授权认证
  • 使用OpenRewrite自动做框架升级比如Spring Boot
  • Siloed No More: How AI-Driven Tech Stack Consolidation Boosts Revenue
  • C# 使用OpenCvSharp4将Bitmap合成为MP4视频的环境
  • O2OA红头文件流转与O2OA版式公文编辑器基本使用
  • java基础-Test03:图书管理系统 超详细注释
  • vue-router(v4.0) 基础3
  • Panasonic松下PLC如何数据采集?如何实现快速接入IIOT云平台?
  • fs方法举例
  • 蓝桥杯day4刷题日记
  • 算法笔记p335堆
  • 景联文科技:提供通用多模态数据,助力AI多模态领域实现飞跃式发展
  • CMU 10-414/714: Deep Learning Systems --hw3
  • HTML、XHTML和HTML5 的区别是什么?
  • 《优化接口设计的思路》系列:第九篇—用好缓存,让你的接口速度飞起来
  • Linux运维_Linux临时环境变量设置(bin和include以及lib)
  • Android14音频进阶:AudioFlinger究竟如何混音?(六十三)
  • 开源离线语音识别输入工具CapsWriter v1.0——支持无限时长语音、音视频文件转录字幕。
  • 《论文阅读》端到端情感原因对提取的有效子句间建模