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

物联网网站开发a5做网站

物联网网站开发,a5做网站,织梦网站安装出现404 not found,旅游网站系统文章详细内容来自#xff1a;线程数突增#xff01;领导#xff1a;谁再这么写就滚蛋#xff01; 下面是看完后文章的#xff0c;一个总结 线程池的使用不规范#xff0c;导致程序中线程数不下降#xff0c;线程数量大。 临时变量的接口#xff0c;通过下面简单的线…文章详细内容来自线程数突增领导谁再这么写就滚蛋 下面是看完后文章的一个总结 线程池的使用不规范导致程序中线程数不下降线程数量大。 临时变量的接口通过下面简单的线程池执行 private static void threadDontGcDemo(){ExecutorService executorService  Executors.newFixedThreadPool(10);executorService.submit(() - {System.out.println(111);});} 线程不被GC回收主要是线程池的gc root还是有可达路径的。这里讲个冷知识这里的线程池的gc root是线程具体的gc路径是thread-workers-线程池 如果临时采用线程池需要 手动设置线程池的shutdown下面写法: private static void threadDontGcDemo(){ExecutorService executorService  Executors.newFixedThreadPool(10);executorService.submit(() - {System.out.println(111);});executorService.shutdown();} 原理是shutdown方法是遍历所有线程并且调用线程的interrupt()方法通知线程中断当worker进行getTask()时让处于wait的线程打断抛出异常workers捕获该workerworkers.remove(w)然后将worker移除workers这样gc root就不可达了便会被GC掉。 也就是说线程池的shutdownnow方法调用interruptIdleWorkers去对线程对象interrupt是为了让处于waiting或者是time_waiting的线程抛出异常。 总结为 线程池调用shutdownnow方法是为了调用worker对象的interrupt方法来打断那些沉睡中的线程waiting或者time_waiting状态使其抛出异常 线程池会把抛出异常的worker对象从workers集合中移除引用此时被移除的worker对象因为没有到达gc root的路径已经可以被gc掉了 等到workers对象空了并且当前tomcat线程也结束此时线程池对象也可以被gc掉整个线程池对象成功释放 Async 线程控制 如果不进行线程控制则异步执行程序越多会导致线程用尽。 一种方式是全局配置所有的异步线程共用线程池 Configuration public class AsyncConfig implements AsyncConfigurer {Overridepublic Executor getAsyncExecutor() {ThreadPoolTaskExecutor executor new ThreadPoolTaskExecutor();executor.setCorePoolSize(10);executor.setMaxPoolSize(20);executor.setQueueCapacity(100);return executor;}Overridepublic AsyncUncaughtExceptionHandler getAsyncUncaughtExceptionHandler() {return new CustomAsyncExceptionHandler();}Overridepublic Integer getAsyncExecutor() {return 30; // 单位为秒}} 另外一种是Async标签指定使用的线程池名称 Configuration EnableAsync public class TaskExcutorConfig {Bean(taskExecutor)public Executor taskExecutro() {ThreadPoolTaskExecutor taskExecutor new ThreadPoolTaskExecutor();taskExecutor.setCorePoolSize(30);taskExecutor.setMaxPoolSize(50);taskExecutor.setQueueCapacity(200);taskExecutor.setKeepAliveSeconds(60);taskExecutor.setThreadNamePrefix(taskExecutor--);taskExecutor.setWaitForTasksToCompleteOnShutdown(true);taskExecutor.setAwaitTerminationSeconds(60);return taskExecutor;}Bean(commonExecutor)public Executor commonTaskExecutro() {ThreadPoolTaskExecutor taskExecutor new ThreadPoolTaskExecutor();taskExecutor.setCorePoolSize(50);taskExecutor.setMaxPoolSize(100);taskExecutor.setQueueCapacity(2000);taskExecutor.setKeepAliveSeconds(60);taskExecutor.setThreadNamePrefix(commonExecutor--);taskExecutor.setWaitForTasksToCompleteOnShutdown(true);taskExecutor.setAwaitTerminationSeconds(60);return taskExecutor;}Bean(notificationExecutor)public Executor notificationExecutor() {ThreadPoolTaskExecutor taskExecutor new ThreadPoolTaskExecutor();taskExecutor.setCorePoolSize(30);taskExecutor.setMaxPoolSize(60);taskExecutor.setQueueCapacity(2000);taskExecutor.setKeepAliveSeconds(60);taskExecutor.setThreadNamePrefix(notificationExecutor--);taskExecutor.setWaitForTasksToCompleteOnShutdown(true);taskExecutor.setAwaitTerminationSeconds(60);return taskExecutor;} } 使用时标明 Async(commonExecutor)
http://www.hkea.cn/news/14431719/

相关文章:

  • 郑州建设网站哪家好杭州的网站建设公司有哪些
  • 网站建设新手指南小程序开发注意事项
  • 为什么要创建网站珠海企业网站建设服务
  • 网站要做手机版怎么做的黄冈做学生互评的网站
  • php网站开发开发实例教程手机网站建设公司排名
  • 网站如何做标题优化网店装修教程免费模板
  • 昆明网站建设锐网海外跨境电商平台排行榜前十名
  • 阿里巴巴网站推广方式wordpress主题修改ftp
  • 数码产品在哪里做网站网站要放备案号吗
  • 福建省住建厅建设网站网络营销的缺点及建议
  • 盘锦做网站选哪家搜索引擎营销的常见方式
  • 套模板网站价格表地税局网站建设情况汇报
  • 温州网站设计只找亿企邦动画制作可以自学吗
  • 关键词和网站的关系腾讯云网站建设流程图
  • 响应式网站写法网站建设品牌
  • 吉林省建设集团网站drupal网站开发
  • 旅游网站规划方案全网营销网站怎么做
  • 做家常菜的网站php 导航网站
  • 懂做游戏钓鱼网站的几何图形生成网站
  • 中国查企业的网站怎么给网站做背景
  • 漳州做网站多少钱建设网站app
  • 高品质的佛山网站建设网站怎么查哪家公司做的
  • 鲜花网站素材如何建立内部网站
  • 河北省建设机械协会官方网站首页怎么用flash做网站
  • 重庆有多少网站网站模板 北京公司
  • 学校精品课网站怎么做ASP网站开发技术期末考试
  • 自己制作一个网站需要多少钱济南广告设计公司前十名
  • 秦皇岛建网站公司wordpress音乐门户主题
  • 毕设做网站类型企业微信登录网页版
  • 济宁网站开发赤峰住房城乡建设部网站