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

Java-GuardedBlocks与BusyWaitting忙等待/挂起/阻塞

现在有这样一个需求,两个线程T1,T2,线程T1会一直等待T2通知,当T2通知T1打印"我爱武汉汉阳的妹子"的时候,T1就会打印"我爱武汉汉阳的妹子"

下面是T1的代码,它无限轮询

boolean a = true; while(a) { // 什么都不做 } System.out.println("我爱武汉汉阳的妹子");

下面是T2的代码

a = false;

当T2对a进行赋值之后,T1就会打印出"我爱武汉汉阳的妹子",上述这种达到两个(甚至多个)线程之间通信的方式,就叫GuardedBlocks,也叫忙等待(BusyWaitting)

现在知道了什么是GuardedBlocks,那么来说一说这种做法的缺点,就是占用CPU使用率很高,因为一直轮询,但是又没做任何事情,这明显是对CPU的浪费,所以对GuardedBlocks使用了一种改进方式,这种改进方式是两个进程之间使用两个条件来通讯,而不是上述代码中仅仅通过a的值这一个条件来判断,改进之后如下
1.T1等待T2通知a修改完毕
2.T1接到通知之后,判断a是否真的修改完毕

下面是T1改进后的代码,它虽然依旧无限循环,但是这只是语义上的体现,实际上并不是真的循环多次

boolean a = true; while(a) { // 添加一个类似wait的方法,然后此处将T1阻塞或者挂起 T1.wait(); } System.out.println("我爱武汉汉阳的妹子");

下面是T2改进后的代码

//首先将a=false a = false; //然后通知T1,a的值已经修改,伪代码类似下面这样 notify(T1);

经过改进后的代码,可以很大程度上减少CPU的无用消耗

注意:
java中,wait底层实现是挂起,挂起是CPU的概念,即使不存在操作系统,CPU执行多任务的时候,没有被执行的任务,此时的状态就叫做挂起

阻塞是线程上的概念,而线程是建立在操作系统之上的,阻塞可以用挂起来实现,也可以用其他方式来实现,挂起更贴近底层,而阻塞更靠上

http://www.jsqmd.com/news/675618/

相关文章:

  • 2026年评价高的油墨/聚氨酯油墨/里油墨生产厂家推荐几家 - 行业平台推荐
  • 2026年热门的圆形别墅电梯工厂直供哪家专业 - 品牌宣传支持者
  • 从零开始搭建电商智能客服:知识图谱 + 大模型,这篇保姆级教程让你彻底搞懂
  • Zotero-GPT实战指南:一键开启文献AI智能处理新时代
  • 2026年靠谱的食品商用烤箱/广州石锅商用烤箱厂家 - 品牌宣传支持者
  • 跨平台颜色不一致?手把手教你统一uni-app checkbox组件的多端样式
  • 【AI面试临阵磨枪】RAG 完整流程:文档 → 切块 → Embedding → 检索 → 生成
  • Canoe新手必看:Vector 1640硬件连接与通道配置全攻略(附常见指示灯解析)
  • 2026年评价高的碳纤维/工业碳纤维品牌厂家哪家靠谱 - 行业平台推荐
  • 深入nbviewer架构:理解多Provider和Format渲染机制
  • TVA时代企业IT工程师的转型之路(二)
  • Element-UI地区选择器优化方案:如何用pcaTextArr实现纯中文三级联动?
  • 2026年热门的隧道炉工业级大功率/隧道炉不锈钢机身款/隧道炉食品烘焙专用口碑好的厂家推荐 - 行业平台推荐
  • Python入门基础知识 4:对字符串|列表|元组进行操作 其一
  • 终极指南:5个技巧教你用猫抓浏览器插件轻松获取网页媒体资源
  • 如何用Windows Cleaner开源工具彻底解决C盘空间不足问题:3步实现系统优化
  • Krita-AI-Diffusion插件安装失败:Linux系统Python虚拟环境创建错误完全解决指南
  • 2026年口碑好的自动打印发卡机/说明书发卡机/包装盒发卡机采购指南厂家怎么选 - 品牌宣传支持者
  • 终极解放:如何用MAA明日方舟助手告别枯燥重复,重拾游戏乐趣?
  • Node.js连接SQL Server终极指南:node-mssql快速入门教程
  • Unity Shader 深度重建世界坐标
  • 2026年质量好的燃气型热风旋转炉/64盘推车式热风旋转炉/16盘推车式热风旋转炉实力工厂怎么选 - 品牌宣传支持者
  • Cadence 17.4 新手避坑指南:从Orcad原理图到Allegro PCB的完整流程(附常见报错解决)
  • 如何快速掌握Dev-CPP:5个高效使用秘诀与完整指南
  • Parseable Kafka连接器深度解析:实现实时数据流处理
  • 告别抢票焦虑:B站会员购自动化工具biliTickerBuy完全指南
  • 2026年评价高的广州军事化夏令营/广州军事夏令营/军事化夏令营人气推荐 - 行业平台推荐
  • TranslucentTB透明任务栏终极教程:让你的Windows桌面焕然一新
  • 2026年质量好的家用烤箱低糖空气炸款/家用烤箱搪瓷内胆款/家用烤箱小型迷你款厂家选择指南 - 行业平台推荐
  • Moody’s Agentic Solutions登陆AWS Marketplace