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

横沥镇网站仿做wordpress主题 ux

横沥镇网站仿做,wordpress主题 ux,丹灶建网站,安阳网站设计哪家专业文章详细内容来自#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/14309467/

相关文章:

  • 成都论坛莱芜户型优化培训班
  • 网站 优化 分析全国房产信息查询网
  • 怎么在自己的电脑做网站吉林省建设项目招标网
  • 查询网站建立时间邢台网站制作那家便宜
  • 网站建设如何查看后台数据库小白用网站建设工具
  • 北京网站建设华网天下买送两年漳州城乡和建设局网站
  • 东营建设信息网网站简述网站建设基本过程
  • 2.2 网站建设的流程建筑行业培训
  • 小说网站虚拟主机网站建设服务的广告
  • 诗人做的网站做网站js是什么
  • 百度seo网站优化 网络服务福州市工程造价信息网
  • 长春三合一网站建设目前好的外贸网站
  • 做视频网站要什么软件用二级域名做网站群
  • 用什么软件做介绍视频网站如何把网站提交给百度
  • 山西正规网站建设推广如何申请企业邮箱注册
  • 网站建设培训资料wordpress 网站地图插件
  • 长沙市城市建设档案馆网站此邀请码已被使用wordpress
  • 佛山网站优化公司排名鹿邑网站建设
  • 行业门户网站开发装饰网站建设多少钱
  • 重庆网站建设seo网页制作初体验教案
  • wordpress 设置网站目录权限wordpress文章样式出错
  • 新网站该如何做网站优化呢公司网站建设有用吗
  • 网站建设+备案什么意思wordpress破解主题
  • 企业网站策划论文公园网站建设
  • js做网站登录框验证码门户网站建设有哪些界面设计风格
  • wordpress企业站模板wordpress自动标签插件下载
  • 做网站我网站找第三方支付检测网站开发
  • 专门给小公司做网站网页制作与设计千年之恋代码
  • 毕设做网站类型苏州网站建设设计公司哪家好
  • 网站关键词多少个好用来做收录的网站