本篇内容主要讲解“Java调度线程池ScheduledThreadPoolExecutor不执行问题怎么解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java调度线程池ScheduledThreadPoolExecutor不执行问题怎么解决”吧!在示例程序可以看到当计数器中的计数达到5的时候就会主动抛出一个异常,抛出异常后ScheduledThreadPoolExecutor
就不调度了。ScheduledThreadPoolExecutor#runrun方法内部首先判断任务是不是周期性的任务,如果不是周期性任务通过ScheduledFutureTask.super.run();
执行任务;如果状态是运行中或shutdown,取消任务执行;如果是周期性的任务,通过ScheduledFutureT免费云主机域名ask.super.runAndReset()
执行任务并且重新设置状态,成功了就会执行setNextRunTime
设置下次调度的时间,问题就是出现在ScheduledFutureTask.super.runAndReset()
,这里执行任务出现了异常,导致结果为false,就不进行下次调度时间设置等*FutureTask#runAndReset在线程任务执行过程中抛出异常,然后catch
到了异常,最终导致这个方法返回false,然后ScheduledThreadPoolExecutor#run
就不设置下次执行时间了,代码c.call();
抛出异常,跳过ran = true;
代码,最终runAndReset
返回false。到此,相信大家对“Java调度线程池ScheduledThreadPoolExecutor不执行问题怎么解决”有了更深的了解,不妨来实际操作一番吧!这里是百云主机网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
本篇内容主要讲解“Python中的日期时间模块怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python中的日期时间模块怎么使用”吧!Python 提供了 日期和时间模块用来处理日期和时间,还可以用于格式化…
免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。