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

专业的网站制作团队随州网站

专业的网站制作团队,随州网站,个人网站做团购,重庆市建设特种信息线程池在提交的任务在处理过程中发生了异常#xff0c;却没有捕获到#xff0c;导致异常只是输出在控制台#xff0c;这通常需要把异常记录下来1、通过观察ThreadGroup的构造方法知道#xff0c;当调用线程组的构造方法时#xff0c;会获取当前线程所属的线程组#xff0… 线程池在提交的任务在处理过程中发生了异常却没有捕获到导致异常只是输出在控制台这通常需要把异常记录下来1、通过观察ThreadGroup的构造方法知道当调用线程组的构造方法时会获取当前线程所属的线程组作为当前正在创建的线程组的parent线程组。2、通过在main方法中获取线程组信息可知当前main线程所属的线程组是main线程组而main线程组的parent线程组是system线程组。3、ThreadGroup的uncaughtException实现如下 public void uncaughtException(Thread t, Throwable e) {if (parent ! null) {parent.uncaughtException(t, e);} else {Thread.UncaughtExceptionHandler ueh Thread.getDefaultUncaughtExceptionHandler();if (ueh ! null) {ueh.uncaughtException(t, e);} else if (!(e instanceof ThreadDeath)) {/* 【异常输出信息的红色是这里输出来的】 */System.err.print(Exception in thread \ t.getName() \ );e.printStackTrace(System.err);}}}4、Thread类有个dispatchUncaughtException方法当Thread线程运行run方法时异常抛出来而没有处理时将会把异常抛给虚拟机虚拟机将会交给该Thread对象的dispatchUncaughtException方法处理可以从如下代码看到如果没有给Thread设置具体的UncaughtExceptionHandler将会给线程组处理而线程组一直委托给parent处理所以最后到了system线程组处理由于它的parent是null所以就使用System.err输出了异常信息 private void dispatchUncaughtException(Throwable e) {getUncaughtExceptionHandler().uncaughtException(this, e); } public UncaughtExceptionHandler getUncaughtExceptionHandler() {return uncaughtExceptionHandler ! null ?uncaughtExceptionHandler : group; }5、线程池中默认的DefaultThreadFactory的实现如下 static class DefaultThreadFactory implements ThreadFactory {private static final AtomicInteger poolNumber new AtomicInteger(1);private final ThreadGroup group;private final AtomicInteger threadNumber new AtomicInteger(1);private final String namePrefix;DefaultThreadFactory() {SecurityManager s System.getSecurityManager();/* 交给的是当前线程所属的线程组 */group (s ! null) ? s.getThreadGroup() :Thread.currentThread().getThreadGroup();namePrefix pool- poolNumber.getAndIncrement() -thread-;}public Thread newThread(Runnable r) {/* 创建的线程 所指定的线程组是在构造方法中设置的 */Thread t new Thread(group, r,namePrefix threadNumber.getAndIncrement(),0);if (t.isDaemon())t.setDaemon(false);if (t.getPriority() ! Thread.NORM_PRIORITY)t.setPriority(Thread.NORM_PRIORITY);return t;} }测试 public class ThrTask implements Runnable {private int a, b;private ThrTask(int a, int b) {this.a a;this.b b;}Overridepublic void run() {double re a / b;System.out.println(re);}public static void main(String[] args) {ThreadPoolExecutor threadPoolExecutor new ThreadPoolExecutor(0, Integer.MAX_VALUE, 1, TimeUnit.SECONDS, new SynchronousQueue(), new ThreadFactory() {Overridepublic Thread newThread(Runnable r) {Thread t new Thread(Thread.currentThread().getThreadGroup(), r, myThread);if (t.isDaemon()) t.setDaemon(false);t.setUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler() {Overridepublic void uncaughtException(Thread t, Throwable e) {System.out.println(线程 t.getName() 出现异常 e);// record this self..}});return t;}});for (int i 0; i 5; i) {//将不会抛出异常// threadPoolExecutor.submit(new ThrTask(5, i));//将会抛出异常threadPoolExecutor.execute(new ThrTask(5, i));}} }
http://www.w-s-a.com/news/623810/

相关文章:

  • 做ppt模板网站有哪些内容wap是什么意思卡老师
  • 网站建设一定要域名吗网站后台关键词设置
  • 标书制作公司网站坪山网站建设哪家便宜
  • 防止做网站的人修改数值门户网站架构
  • 电子项目外包网站考二建需要什么学历和专业
  • 做网站推广引流效果好吗电商推广技巧
  • 亦庄网站建设价格广州网站推广服务
  • 十大免费ppt网站下载重庆在线高校平台登录
  • 做环保网站案例百度seo教程
  • 体育用品网站模板网站建设话术
  • 潍坊网站建设服务商做网站多久能盈利
  • 嘉定区做网站房产信息查询官网
  • 网站直播间 是怎么做的唐山论坛建站模板
  • 深圳洲聚网站建设wordpress 泛解析
  • 五金东莞网站建设技术支持wordpress 添加模板
  • 网站申请专利春节网页设计素材
  • 进网站备案md风格的wordpress主题
  • 如何建站网站十大免费建站app
  • 工作号做文案素材的网站晋城网站设计人
  • 建设部网站官网 施工许可怎样建网站 需要
  • 什么网站都能打开的浏览器同城小程序怎么推广
  • 在电脑上怎么做网站网址seo分析
  • 石家庄做网站网络公司电子商务营销推广
  • 网站开发 前端专做婚礼logo的网站
  • 同创企业网站建设拖拽建设网站源码
  • wordpress调用网站标题网站页面排版
  • 哈尔滨营销网站建设电子商城网站开发要多少钱
  • 免费织梦导航网站模板下载地址自己建站网站
  • 获取网站访客qq号码代码做抽奖网站违法吗
  • 湖南大型网站建设公司排名偷网站源码直接建站