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

去年做那个网站致富企业免费自助建站平台

去年做那个网站致富,企业免费自助建站平台,千岛湖建设集团有限公司网站,备案系统新增网站去年年底#xff0c;我正在运行预定的任务来监视Neo4j集群#xff0c;而我遇到的问题之一是有时监视会退出。 我最终意识到这是因为RuntimeException被抛出到Runnable方法中#xff0c;而我没有处理它。 以下代码演示了该问题#xff1a; import java.util.ArrayList; im… 去年年底我正在运行预定的任务来监视Neo4j集群而我遇到的问题之一是有时监视会退出。 我最终意识到这是因为RuntimeException被抛出到Runnable方法中而我没有处理它。 以下代码演示了该问题 import java.util.ArrayList; import java.util.List; import java.util.concurrent.*;public class RunnableBlog {public static void main(String[] args) throws ExecutionException, InterruptedException {ScheduledExecutorService executor Executors.newSingleThreadScheduledExecutor();executor.scheduleAtFixedRate(new Runnable() {Overridepublic void run() {System.out.println(Thread.currentThread().getName() - System.currentTimeMillis());throw new RuntimeException(game over);}}, 0, 1000, TimeUnit.MILLISECONDS).get();System.out.println(exit);executor.shutdown();} } 如果运行该代码我们将看到RuntimeException但是执行器不会退出因为线程在没有通知的情况下就死了 Exception in thread main pool-1-thread-1 - 1391212558074 java.util.concurrent.ExecutionException: java.lang.RuntimeException: game overat java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:252)at java.util.concurrent.FutureTask.get(FutureTask.java:111)at RunnableBlog.main(RunnableBlog.java:11)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java.lang.reflect.Method.invoke(Method.java:601)at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120) Caused by: java.lang.RuntimeException: game overat RunnableBlog$1.run(RunnableBlog.java:16)at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:351)at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:178)at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:178)at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)at java.lang.Thread.run(Thread.java:722) 当时我最终添加了一个try catch块并打印如下异常 public class RunnableBlog {public static void main(String[] args) throws ExecutionException, InterruptedException {ScheduledExecutorService executor Executors.newSingleThreadScheduledExecutor();executor.scheduleAtFixedRate(new Runnable() {Overridepublic void run() {try {System.out.println(Thread.currentThread().getName() - System.currentTimeMillis());throw new RuntimeException(game over);} catch (RuntimeException e) {e.printStackTrace();}}}, 0, 1000, TimeUnit.MILLISECONDS).get();System.out.println(exit);executor.shutdown();} } 据我所知这允许异常被识别并且执行Runnable的线程不会死亡。 java.lang.RuntimeException: game over pool-1-thread-1 - 1391212651955at RunnableBlog$1.run(RunnableBlog.java:16)at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:351)at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:178)at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:178)at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)at java.lang.Thread.run(Thread.java:722) pool-1-thread-1 - 1391212652956 java.lang.RuntimeException: game overat RunnableBlog$1.run(RunnableBlog.java:16)at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:351)at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:178)at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:178)at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)at java.lang.Thread.run(Thread.java:722) pool-1-thread-1 - 1391212653955 java.lang.RuntimeException: game overat RunnableBlog$1.run(RunnableBlog.java:16)at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:351)at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:178)at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:178)at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)at java.lang.Thread.run(Thread.java:722) 这很好使我能够继续监视集群。 但是我最近开始阅读“ Java Concurrency in Practice ”购买后仅6年并意识到这可能不是处理RuntimeException的正确方法。 public class RunnableBlog {public static void main(String[] args) throws ExecutionException, InterruptedException {ScheduledExecutorService executor Executors.newSingleThreadScheduledExecutor();executor.scheduleAtFixedRate(new Runnable() {Overridepublic void run() {try {System.out.println(Thread.currentThread().getName() - System.currentTimeMillis());throw new RuntimeException(game over);} catch (RuntimeException e) {Thread t Thread.currentThread();t.getUncaughtExceptionHandler().uncaughtException(t, e);}}}, 0, 1000, TimeUnit.MILLISECONDS).get();System.out.println(exit);executor.shutdown();} } 我认为这两种方法之间没有太大区别所以如果有人可以向我解释为什么这种方法比我以前的捕获异常并打印堆栈跟踪的方法更好的话那将是一个很好的选择。 参考 Java通过Mark Needham博客博客的JCG合作伙伴 Mark Needham 处理可运行的RuntimeException 。 翻译自: https://www.javacodegeeks.com/2014/02/java-handling-a-runtimeexception-in-a-runnable.html
http://www.pierceye.com/news/519480/

相关文章:

  • 织梦免费网站模块下载地址加强网站建设技术培训
  • 网站源码商城建设成都建站优化
  • 网站销售如何做业绩狗狗和人做网站
  • dede 手机站 怎么获取跳转网站安卓软件开发环境
  • 个人网站做什么类型好中国网络安全官网
  • 怎样优化网站排名上传到服务器的网站打开是空白
  • 我的世界做皮肤网站企业网站风格
  • 京东网站建设的基本情况做哪类网站赚钱
  • 淘宝上网站建设续费个人网站做什么类型的
  • 牙克石网站建设wordpress 跳过ftp
  • 中国建设银行官网站e路通下载店铺设计图纸及效果图大全
  • 福州网站推广公司烟台网络公司有哪些
  • 福建省建设注册管理中心网站那些做面点的网站好
  • 天津网站建设方案托管wordpress 批量删除
  • 网站后台管理系统域名在线设计房屋装修
  • 郑州网站建设工作室wordpress 编辑器字号
  • 内容聚合网站开发教程WordPress文章首页缩进
  • saas云建站平台源码新冠2024中国又要封城了
  • 济南网站建设认可搜点网络滨州网站建设
  • 政务公开及网站建设意见网站的策划方案怎么写
  • 网站培训制度郑州建网站哪个公司好
  • 网站建设优化怎么做微信公众平台开发网站
  • 网站建设的什么是网站建设的第一阶段公司简介概况怎么写
  • 玛伊网站做兼职加入要多少钱装修房子的app软件哪个好
  • 免费空间asp网站公众号编辑器排行榜
  • 鲜花培训网站建设网站建设技术部奖惩制度
  • 国内优秀设计网站站长营销型网站建设 案例
  • 织梦网站维护唐山网站建设哪家专业
  • 网上打字兼职正规网站深圳各区房价一览表
  • 怎样建设网站是什么怎么看网站空间多大