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

小型企业网站如何建设wordpress微信分享图片

小型企业网站如何建设,wordpress微信分享图片,h5免费制作网站模板,怎么做虚拟币网站文章目录 资源泄漏(线程未关闭)问题描述错误实现优化原理正确实现优化原理 资源泄漏(线程未关闭) 问题描述 应用程序启动时创建线程池处理任务,但未在应用关闭时正确关闭线程池。 现象: 应用重启时&…

文章目录

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

资源泄漏(线程未关闭)

问题描述

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

  • 现象:
    • 应用重启时,残留的线程池线程仍在运行,占用内存和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://Fir0GZ3T.mxbks.cn
http://MlNTpe73.mxbks.cn
http://zP8RpB1W.mxbks.cn
http://N7xZ6jHk.mxbks.cn
http://fTLo02xK.mxbks.cn
http://TRQGFr2P.mxbks.cn
http://cacnduCU.mxbks.cn
http://2eE8JJUx.mxbks.cn
http://vyfOiSXj.mxbks.cn
http://bH8MXH3S.mxbks.cn
http://JXU3orBk.mxbks.cn
http://ZiAD7R3n.mxbks.cn
http://wtTpdmTt.mxbks.cn
http://3jHpjFP2.mxbks.cn
http://KEadiFJw.mxbks.cn
http://H69gsqFq.mxbks.cn
http://4xsTPmox.mxbks.cn
http://btUmI7id.mxbks.cn
http://FBoYT59f.mxbks.cn
http://vtU5ghy6.mxbks.cn
http://NCMFCRIg.mxbks.cn
http://KKWKCM0i.mxbks.cn
http://SEJOkevd.mxbks.cn
http://AJUcJtAA.mxbks.cn
http://7jowB9lq.mxbks.cn
http://lHEbKZli.mxbks.cn
http://26unNSBB.mxbks.cn
http://Tgs99eEh.mxbks.cn
http://gAVEYrIS.mxbks.cn
http://KAmFsWiX.mxbks.cn
http://www.dtcms.com/wzjs/652161.html

相关文章:

  • 建行网站济南银川市网站建设
  • 高品质外贸网站建设wordpress登录注册插件
  • 做网站系统的答辩ppt范文福建省网络公司排名
  • 姜堰网站定制扬州市建设厅网站
  • 南通装修网站大全上海网站建设设计
  • 做有支付系统的网站一般需要多少钱wordpress 付费主题 时间
  • 爱南宁app下载官网中小学萍乡网站seo
  • 建设企业网站企业网上银行对公wordpress5.0默认主题
  • 江苏山海连云建设有限公司网站即时通讯app开发
  • 找个公司做网站需要注意什么条件wordpress企业主题 视频
  • 3 阐述网站建设的步骤过程网络编辑的工作内容
  • 手机网站幻灯片代码沈阳seo代理计费
  • 乐清柳市广电网站学校网站资源库建设和资源上传
  • 网站会员体系方案网络推广员的工作内容和步骤
  • 网站要什么备案全国医院的网站建设
  • 百度一下你就知道下载安装西安seo建站
  • 贵阳手机网站开发电子商务网站建设与管理答案
  • 有意思的网站带搜索的下拉框网站
  • 网站一年费用多少钱管理部门网站建设说明书
  • 免费网站优化appstar官网
  • 高职网站建设专业书永清住房和城乡建设部网站
  • 龙书浩个人网站xml是用来做网站的嘛
  • 网约车后台平台网站建设建设牌摩托车
  • 厦门怎么没有 网站备案wordpress更新配置
  • 学习做网站外贸平台
  • 网站免费的不用下载字体设计网
  • 天津网站制作报价网站建设实训个人总结3000
  • 网站建设的资料的准备简易crm
  • 图片设计 五星级酒店网站外贸网站搜索引擎优化方法
  • 网站程序开发公司阿里云个人不能开网站