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

官方网站 建设情况汇报河南响应式建站

官方网站 建设情况汇报,河南响应式建站,西安网站建设哪些公司好,桂林网站开发m0773问题 今天在测试环境通过线程池执行任务时突然被中断#xff0c;跟踪日志发现代码跑到一半后面的日志就不再打印#xff0c;而且也没有任何异常堆栈信息#xff0c;也就是说程序执行被中断了#xff0c;后面反复尝试经排查发现是线程池使用不当导致。 测试验证 我们用线程…问题 今天在测试环境通过线程池执行任务时突然被中断跟踪日志发现代码跑到一半后面的日志就不再打印而且也没有任何异常堆栈信息也就是说程序执行被中断了后面反复尝试经排查发现是线程池使用不当导致。 测试验证 我们用线程池执行任务一般有两种方式一种是不需要返回结果的调用execute方法一种是需要返回结果的调用submit方法。 excute方法测试 调用executor方法执行线程不会吃掉异常 Test public void test0() {ExecutorService executorService Executors.newFixedThreadPool(1);executorService.execute(() - {System.out.println(子线程-begin);System.out.println(1 / 0);System.out.println(子线程-end);});System.out.println(主线程执行完成); }运行结果如下有异常堆栈信息 主线程执行完成 子线程-begin Exception in thread pool-1-thread-1 java.lang.ArithmeticException: / by zeroat com.zhouyong.practice.executor.ExecutorTest.lambda$test0$0(ExecutorTest.java:20)at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)at java.lang.Thread.run(Thread.java:748)Process finished with exit code 0submit方法测试 线程池中的异常被吃掉-通过submit执行 Test public void test1() {ExecutorService executorService Executors.newFixedThreadPool(1);executorService.submit(() - {System.out.println(子线程-begin);System.out.println(1 / 0);System.out.println(子线程-end);});System.out.println(主线程执行完成);}执行结果如下没有异常堆栈信息异常被吃掉 子线程-begin 主线程执行完成Process finished with exit code 0结论 调用线程池的submit方法执行线程时异常处理的两种方式 直接在线程run方法内部catch异常自行处理 Test public void test2(){ExecutorService executorService Executors.newFixedThreadPool(1);executorService.submit(() - {try {System.out.println(子线程-begin);System.out.println(1 / 0);System.out.println(子线程-end);} catch (Exception e) {//TODO 此处做日志记录或者打印异常堆栈 e.printStackTrace();}});System.out.println(主线程执行完成); }运行结果 通过调用submit返回的Future对象做好异常处理 通过调用submit的返回值Future的get方法时会阻塞等待线程执行完成如果有异常会抛出 Test public void test2() throws ExecutionException, InterruptedException {ExecutorService executorService Executors.newFixedThreadPool(1);Future? future executorService.submit(() - {System.out.println(子线程-begin);System.out.println(1 / 0);System.out.println(子线程-end);});//TODO 调用get方法时会等待线程执行如果有异常会抛出此处可以catch异常做日志记录 //由于get方法会阻塞主线程因此最好也放在线程池中执行调用execute方法即可System.out.println(future.get());System.out.println(主线程执行完成);}运行结果如下 由于feture.get()方法会阻塞主线程因此最好通过线程池执行 Test public void test4() {ExecutorService executorService Executors.newFixedThreadPool(2);Future? future executorService.submit(() - {System.out.println(子线程-begin);System.out.println(1 / 0);System.out.println(子线程-end);});//由于get方法会阻塞主线程因此最好也放在线程池中执行调用execute方法即可executorService.execute(()- {try {future.get();} catch (Exception e) {//TODO 此处做日志记录或者打印异常堆栈 e.printStackTrace();}});System.out.println(主线程执行完成); }运行结果如下
http://www.pierceye.com/news/419493/

相关文章:

  • 设计网页英语口碑优化seo
  • 试客那个网站做的好北京做软件开发的公司
  • 网站多套系统如何调用网页大图素材
  • 沧州网站建设方案咨询wordpress需要 伪静态
  • 安徽省住房和城乡建设部网站郑州百姓网免费发布信息
  • 电子商务网站开发是指聊城市城乡建设部网站查询
  • 聊天室网站模板国内市场调研公司
  • 网站做不做备案有什么区别网站媒体给房开做内容推广
  • 昆明专业网站建设模板蚌埠app制作公司
  • 平面ui设计网站网页布局设计类型
  • 东莞企石网站建设网站怎么留住用户
  • 公司网站虚假宣传但网站不是我做的wordpress自豪地采用修改
  • 山西大同网站建设哪家好宜宾seo快速排名
  • 网站为什么做黄词骗流量网站图标在哪里修改
  • 手机移动端网站建设青岛门户网站建设
  • 专业APP客户端做网站php完整电商网站开发源码
  • 网站代码500网站的页面风格是什么
  • 电商开发网站公司腾讯营销平台
  • 商务网站是什么网站建设技术有哪些
  • 专门做团购的网站有哪些微信小程序开发者工具官网下载
  • 网站开发的项目需求山东省住房和城乡建设厅电话
  • 网站建设初期推广方式安徽网站建设价格
  • 淘宝购买网站建设工业皮带怎么做免费的网站
  • 华城建设集团有限公司官方网站嵌入式软件开发教程
  • 建设邮箱网站桔子建站官网
  • 电子商务网站模板xampp下安装wordpress
  • 可以做动图的视频网站校园网站建设的目的
  • 专业网站制作公司塞尼铁克dw网页设计作品简单
  • 福州做网站公司有哪些中小企业网站制作塞尼铁克
  • 公司网站 钓鱼网站网站建设实训报告的内容怎么写