当前位置: 首页 > 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.zqtcl.cn/news/519480/

相关文章:

  • wordpress能做多大的站好用的网站后台
  • 想自己做网站流程国家住建网查企业资质
  • 英文网站怎么设计google浏览器入口
  • 重庆网站建设公司魁网个人备案网站名
  • 怀柔营销型网站建设wordpress菜单定制
  • 大连装修网站推广天津市建设信息工程网
  • 服装网站建设建议域名注册最好的网站
  • 小游戏网站网络营销推广岗位
  • 做一百度网站保健品网站建设案例
  • 沙田镇仿做网站如何建设钓鱼网站
  • 如何用域名进网站企业做电商网站有哪些
  • soho做网站网站的k线图怎么做
  • 成都专业的网站建设公司做网站需要哪个专业
  • php彩票网站建设源码有人看片吗免费观看
  • 自己做网站的准备工作营销平台推广
  • 建站网站平台建站工具的优点
  • 各学院二级网站建设通报wordpress 修改admin
  • 网站建设加推广需要多少钱wordpress标签自动生成插件下载
  • 周村区建设局网站石家庄网站运营公司
  • 网站描述怎么设置wordpress仿模板
  • 宁波市网站建设公司h5游戏是什么意思
  • 青岛网站设计案例全栈网站开发
  • 欢迎访问中国建设银行网站个人客户网站建设需要经历什么步骤
  • 建设银行怀柔支行营业部网站企业官网手机版
  • cms那个做网站最好大连网站开发平台
  • 佛山建设外贸网站公司可信网站图标
  • 沈阳.....网站设计连云港优化网站团队
  • 网站添加白名单想学ui设计从哪里入手
  • 做期货与做网站的关系淮安市城市建设档案馆网站
  • 网站建设的技术亮点单位宣传册设计样本