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

秦皇岛专业做网站seo是哪个国家

秦皇岛专业做网站,seo是哪个国家,wordpress编辑器添加可视化按钮,定远建设局网站文章目录 资源泄漏(线程未关闭)问题描述错误实现优化原理正确实现优化原理 资源泄漏(线程未关闭) 问题描述 应用程序启动时创建线程池处理任务,但未在应用关闭时正确关闭线程池。 现象: 应用重启时&…

文章目录

  • 资源泄漏(线程未关闭)
    • 问题描述
    • 错误实现
    • 优化原理
    • 正确实现
    • 优化原理

资源泄漏(线程未关闭)

问题描述

应用程序启动时创建线程池处理任务,但未在应用关闭时正确关闭线程池。

  • 现象:
    • 应用重启时,残留的线程池线程仍在运行,占用内存和CPU资源。
    • 若线程池任务涉及外部资源(如数据库连接),可能导致资源耗尽或端口占用。

错误实现

  • 案例:未正确关闭线程池
public class ResourceLeakDemo {private static final ThreadPoolExecutor executor = new ThreadPoolExecutor(2, 4, 60, TimeUnit.SECONDS,new LinkedBlockingQueue<>());public static void main(String[] args) {executor.execute(() -> {while (true) {try {System.out.println("执行任务中...");Thread.sleep(1000);} catch (InterruptedException e) {e.printStackTrace();}}});// 模拟应用关闭(未关闭线程池)System.out.println("主线程结束,但线程池仍在运行!");}
}
  • 结果
主线程结束,但线程池仍在运行!
执行任务中...
执行任务中...
...
  • 主线程结束后,线程池中的核心线程(非守护线程)会持续运行,导致JVM无法退出。

优化原理

调优方案与场景

调优目标

  • 确保线程池关闭:在应用退出时,优雅关闭线程池,释放所有资源。
  • 防止资源泄漏:终止所有线程,避免残留任务占用系统资源。

解决方案

  1. 显式调用 shutdown():在应用退出逻辑中手动关闭线程池。
  2. 注册JVM关闭钩子:确保即使非正常退出(如kill命令),也能触发线程池关闭。

正确实现

  • 调优后:
public class ResourceLeakFixedDemo {private static final ThreadPoolExecutor executor = new ThreadPoolExecutor(2, 4, 60, TimeUnit.SECONDS,new LinkedBlockingQueue<>());public static void main(String[] args) {// 注册JVM关闭钩子Runtime.getRuntime().addShutdownHook(new Thread(() -> {System.out.println("JVM关闭钩子触发:关闭线程池...");shutdownThreadPool();}));executor.execute(() -> {while (true) {try {System.out.println("执行任务中...");Thread.sleep(1000);} catch (InterruptedException e) {System.out.println("任务被中断,退出循环");break;}}});// 模拟正常关闭(手动调用关闭逻辑)shutdownThreadPool();System.out.println("应用主线程结束");}private static void shutdownThreadPool() {executor.shutdown(); // 停止接受新任务,等待已有任务完成try {// 等待任务终止,最多10秒if (!executor.awaitTermination(10, TimeUnit.SECONDS)) {executor.shutdownNow(); // 强制终止所有任务System.out.println("线程池强制关闭");}} catch (InterruptedException e) {executor.shutdownNow();}}
}
  • 运行后:
执行任务中...
执行任务中...
JVM关闭钩子触发:关闭线程池...
执行任务中...
执行任务中...
执行任务中...
执行任务中...
线程池强制关闭
应用主线程结束
任务被中断,退出循环

优化原理

关键调优总结

1、注册关闭钩子

Runtime.getRuntime().addShutdownHook(new Thread(() -> shutdownThreadPool()));

2、优雅关闭线程池

  • shutdown():停止接受新任务,等待已有任务完成。
  • awaitTermination():设定超时时间,避免无限等待。
  • shutdownNow():超时后强制终止所有任务(向线程发送中断信号)。

3、任务响应中断

try {Thread.sleep(1000);
} catch (InterruptedException e) {break; // 捕获中断信号,退出任务
}

4. 建议

  • 统一管理线程池生命周期:在应用启动/关闭时显式初始化和销毁线程池。
  • 监控线程池状态:记录活跃线程数、队列大小、拒绝任务数等指标。
  • 防御性编程:任务代码需正确处理中断,避免死循环。

文章转载自:

http://snSZ3Kiv.kjyfq.cn
http://tFgoO1xG.kjyfq.cn
http://lg11m3zv.kjyfq.cn
http://SzRnKMx1.kjyfq.cn
http://gvFlAITz.kjyfq.cn
http://AyeLEkKZ.kjyfq.cn
http://Tn0CIAGK.kjyfq.cn
http://4tPaQhr5.kjyfq.cn
http://Oh0zlPl9.kjyfq.cn
http://lnfrTG4w.kjyfq.cn
http://CrL6wkxo.kjyfq.cn
http://uxYcXrXH.kjyfq.cn
http://PCkfi9TB.kjyfq.cn
http://LmrTslPU.kjyfq.cn
http://XHq0eORu.kjyfq.cn
http://KCfKcj2n.kjyfq.cn
http://8kqQREW7.kjyfq.cn
http://Upgolrgy.kjyfq.cn
http://C3hhncWG.kjyfq.cn
http://DLJ9FqIR.kjyfq.cn
http://17TFKoV1.kjyfq.cn
http://X9L1nFwV.kjyfq.cn
http://oTowMj2Y.kjyfq.cn
http://xS0B5C2w.kjyfq.cn
http://UZYhWSgy.kjyfq.cn
http://0a8IQEnl.kjyfq.cn
http://2eUSr2qf.kjyfq.cn
http://UpEumR5Q.kjyfq.cn
http://jwd4xV77.kjyfq.cn
http://ei4k3cnk.kjyfq.cn
http://www.dtcms.com/wzjs/686739.html

相关文章:

  • 上海正规做网站公司男女做那个能看的视频网站
  • 快速建站工具河北人社app二维码图片
  • 哪个网站可做密丸潜江官方新闻
  • php网站开发报告书wordpress+支持+手机版
  • 接入商 济南网站建设报考二级建造师官网
  • 网站建设哪家强wordpress发布文章提示失败
  • 网站 做购物车网络公司经营范围可以加技
  • 全站仪快速建站装修公司简介范文
  • 网页制作与网站发布企业管理培训课程内容
  • 旅游电网站建设目标dw做网站简单首页
  • 搭建html5网站企业建站免费模板
  • 网站优化代码wordpress配置文件数据库
  • 如何做百度推广的网站工信部网站备案系统怎么注册
  • 山东做网站建设的好公司哪家好品牌型网站设计
  • 微网站建设找哪家公司好网站服务器 优帮云
  • 贵州网站备案查询做网站平台公司有哪些
  • 网站推广专业专业企业网站开发公司
  • notepad做网站足球世界排名国家
  • 外贸网站seo推广方案建设银行辽宁分行报名网站
  • 建设部网站查询造价师证件赶集网官网首页
  • 网站系统怎么做的怎么自己做画册网站
  • 网站用户群太平洋建设集团有限公司网站
  • 做lol数据的网站漳州做网站最便宜
  • 建设网站需要做哪些工作内容手机wap 网站
  • 站酷网素材什么平台可以免费打广告
  • 郑州网站seo优化个人在国外网站做电商
  • 建设网站需要学习什么开发一个页面多少钱
  • 网站一般用什么语言网站开发登录链接
  • 广州网站制作哪家强成都企业网站设计服务商
  • 台州网站注册 公司网站推广前景怎么样