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

并发编程面试题3

一、CountDownLatch,Semaphore的高频问题:

1.1 CountDownLatch是啥?有啥用?底层咋实现的?

CountDownLatch 本质上是一个计数器,用于协调多个线程之间的同步。主要应用场景是在多线程并行处理业务时,需要等待其他线程处理完再进行后续操作,例如合并结果或响应用户请求。

用法

  • 在主线程中创建一个 CountDownLatch 对象,指定计数器的初始值。
  • 每个子线程在处理完任务后,调用 countDown 方法将计数器减1。
  • 主线程调用 await 方法,等待计数器归零后继续执行。

底层实现

  • 基于 AQS(AbstractQueuedSynchronizer)实现。
  • 创建 CountDownLatch 时,指定的数值会赋值给 state 属性。
  • 子线程调用 countDown 方法时,state 减1。
  • 当 state 归零时,调用 await 方法挂起的线程会被唤醒。

注意:CountDownLatch 不能重复使用,用完即销毁。

1.2 Semaphore是啥?有啥用?底层咋实现的?

http://www.lryc.cn/news/391211.html

相关文章:

  • Movable antenna 早期研究
  • Polkadot 安全机制揭秘:保障多链生态的互操作性与安全性
  • python将多个文件夹里面的文件拷贝到一个文件夹中
  • docker私有仓库harbor部署
  • 如何在Java中实现函数式编程
  • 二叉树与堆相关的时间复杂度问题
  • goLang小案例-获取从控制台输入的信息
  • 1-5题查询 - 高频 SQL 50 题基础版
  • Modbus协议转Profinet协议网关模块连智能仪表与PLC通讯
  • 新手必学:TikTok视频标签的使用方法
  • AI是在帮助开发者还是取代他们
  • 【后端面试题】【中间件】【NoSQL】MongoDB查询过程、ESR规则、覆盖索引的优化
  • 使用c++函数式编程实现Qt信号槽机制
  • 【Android】Activity子类之间的区别
  • 在 Mac 上使用 MLX 微调微软 phi3 模型
  • 【JavaEE】多线程代码案例(2)
  • Halcon支持向量机
  • 【Python机器学习】模型评估与改进——在模型选择中使用评估指标
  • 【C语言】union 关键字
  • 电脑回收站删除的文件怎么恢复?5个恢复方法详解汇总!
  • mac 安装cnpm 淘宝镜像记录
  • ArcGIS Pro SDK (七)编辑 11 撤销重做
  • Excel 中的元素定位:相对定位、绝对定位和混合定位
  • Idea2024安装后点击无响应
  • 如何提高实验室分析结果的准确性呢
  • Perl 格式化输出:提升代码可读性的技巧
  • JavaScript基础-函数(完整版)
  • AI开发者的新选择:Mojo编程语言
  • 软考(高项)系统分析师--论软件开发模型及应用
  • 同一天提档又撤档!电影《野孩子》宣布取消7月10日公映安排——浔川电影报