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

上海微网站公司百度一下官方网页

上海微网站公司,百度一下官方网页,北京公司网站建设推荐,有专门做检验的视频网站吗文章目录 前言原因是否正确方案是否合理定时轮询场景事件机制等待和唤醒 个人简介 前言 最近逛 CSDN 看到一篇文章,文章大意是说为什么在循环中不推荐使用 sleep 操作,原因在于线程挂起和唤醒会有很大的性能消耗,并推荐使用 Timer 及 Schedu…

文章目录

  • 前言
  • 原因是否正确
  • 方案是否合理
    • 定时轮询场景
    • 事件机制
    • 等待和唤醒
  • 个人简介

前言

  • 最近逛 CSDN 看到一篇文章,文章大意是说为什么在循环中不推荐使用 sleep 操作,原因在于线程挂起和唤醒会有很大的性能消耗,并推荐使用 Timer 及 ScheduledExecutorService 方案进行优化,下面我简单复现一下具体代码,大家思考一下,原文的原因以及解决方案是否合理:
public class Demo {private static final boolean FLAG = true;public static void main(String[] args) {while (FLAG) {try {Thread.sleep(3000);} catch (InterruptedException e) {throw new RuntimeException(e);}}// do something}
}
  • 上面的代码你可能会得到下面的警告:
Call toThread.sleep()’ in a loop, probably busy-waiting
// 循环中调用 sleep 可能会导致忙等待 
// 如 FLAG 变量状态未改变 那么线程可能一直循环,并不断进行线程挂起和唤醒

1698754459535.png

原因是否正确

  • 主要原因和原文博主所说有很大的关系但不完全正确:
  • 我们都知道 Java 线程实际对应着操作系统中的一个线程,对线程的挂起和唤醒是一个很耗性能的操作,因此我们需要避免对线程进行挂起和唤醒;
  • 但还一个重要的原因是忙等待,如上文所示 FLAG 变量的状态可能永远不会被改变,那么线程将会不断进行挂起和唤醒,进入忙等待状态,造成资源的浪费。

方案是否合理

  • 记住一点,讨论方案永远不能脱离场景,没有一种方案可以适应所有的场景,我们永远只是在探讨适合当前场景的方案。因此,原文博主只是提供了一些场景下的方案,下面我们结合一些具体的场景来探讨一些可行的方案:

定时轮询场景

  • 定时轮询的场景我们可以采用博主提供的思路,比如 Timer 及 ScheduledExecutorService 或者其它一些定时机制方案。
比如微服务体系中,客户端上报实例状态,或者服务端检测客户端状态都会使用定时轮询的机制。

事件机制

  • 上文的场景,我更推荐事件机制进行解耦,当变量被改变时,发送变量修改事件进行处理,如常见的 Spring Event 或者其它事件推送框架。
比如一些用户登录场景,当用户登录状态改变时,发送登录事件进行后续处理,比如登录通知等等

等待和唤醒

  • 等待和唤醒机制一般适用于等待时间较长的场景,因为等待和唤醒是一个性能消耗比较大的操作;在等待时间不是很长的场景可以使用轮询机制,避免线程频繁的挂起和唤醒。
在 Java AQS 等待获取锁和线程池任务为空等待新任务时,会使用等待和唤醒操作
轮询机制 和 等待和唤醒 一般会结合使用,避免线程频繁的挂起和唤醒。

个人简介

👋 你好,我是 Lorin 洛林,一位 Java 后端技术开发者!座右铭:Technology has the power to make the world a better place.

🚀 我对技术的热情是我不断学习和分享的动力。我的博客是一个关于Java生态系统、后端开发和最新技术趋势的地方。

🧠 作为一个 Java 后端技术爱好者,我不仅热衷于探索语言的新特性和技术的深度,还热衷于分享我的见解和最佳实践。我相信知识的分享和社区合作可以帮助我们共同成长。

💡 在我的博客上,你将找到关于Java核心概念、JVM 底层技术、常用框架如Spring和Mybatis 、MySQL等数据库管理、RabbitMQ、Rocketmq等消息中间件、性能优化等内容的深入文章。我也将分享一些编程技巧和解决问题的方法,以帮助你更好地掌握Java编程。

🌐 我鼓励互动和建立社区,因此请留下你的问题、建议或主题请求,让我知道你感兴趣的内容。此外,我将分享最新的互联网和技术资讯,以确保你与技术世界的最新发展保持联系。我期待与你一起在技术之路上前进,一起探讨技术世界的无限可能性。

📖 保持关注我的博客,让我们共同追求技术卓越。

http://www.khdw.cn/news/12190.html

相关文章:

  • 温州建站软件百度一下你就知道移动官网
  • 合肥建立网站竞价托管外包哪家好
  • wordpress的图床seo优化教程
  • 做外贸网站效果图深圳全网信息流推广公司
  • wordpress agoda镇江关键字优化品牌
  • wordpress云盘视频上海seo有哪些公司
  • 网站服务器及运营维护公告百度搜索优化怎么做
  • 建设高端网站公司国际大新闻最新消息
  • 从网站建设到网站运营重庆百度推广排名优化
  • html5网站开发案例河南郑州网站顾问
  • 完美政府网站管理系统推广费用一般多少
  • 个人网站设计规划深圳网络营销全网推广
  • 上海建设工程施工许可证查询网站软件开发外包平台
  • 在线舆情系统seo网络搜索引擎优化
  • 德阳网站制作商家怎么入驻百度
  • 卫浴响应式外贸网站建设网络推广的含义
  • 做药物分析网站广州网站建设费用
  • 企业网站设计原则如何营销推广自己的产品
  • 江门站官网优秀网站网页设计
  • 沧州有做网站的吗百度企业网盘
  • 网站开发备案费用百度统计代码
  • 网站降权查询工具公关公司
  • 深圳设计工作室有哪些深圳seo优化推广
  • 怎么把自己做的网站放到网上网络推广代运营公司
  • 许昌市网站建设网络营销公司名字
  • 网站开发语言查询 蔡学镛百度最新推广产品
  • seo 网站标题字数搜索app下载
  • 小说网站开发实训报告app开发费用一览表
  • 做网站需要哪些人才谷歌浏览器下载手机版app
  • 最好的网站开发语言百度搜索引擎优化的方法