ScheduledExecutorService 多线程问题

leonlgw 2017-11-28 05:30:43
定义Scheduled线程池
public final static ScheduledExecutorService scheduledExecutor = Executors.newScheduledThreadPool(8);
....
调用方法,每隔30秒跑一下线程runnable
scheduledExecutor.scheduleWithFixedDelay(runnable, 30, 30 TimeUnit.SECONDS);

各位大神,问题是,为什么每隔30秒,跑两次runnable,而不是预计中的一次!输出日志大概是这样,注意时间

2017-11-28 17:27:20.430 INFO - runnable - running
2017-11-28 17:27:21.267 INFO - runnable - running

2017-11-28 17:27:51.460 INFO - runnable - running
2017-11-28 17:27:52.142 INFO - runnable - running

2017-11-28 17:28:22.769 INFO - runnable - running
2017-11-28 17:28:23.238 INFO - runnable - running

真心求教!
...全文
340 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
kampoo 2017-11-29
  • 打赏
  • 举报
回复
仅从日志看难以说明是2次,也可能你的Runnable子类在方法的进入-退出都输出了同样的日志呢。 另外你的运行环境是什么?spring吗?如果引入两次context文件,也会造成同样的问题。

...info("runnable - running")
...
...info("runnable - running")
leonlgw 2017-11-28
  • 打赏
  • 举报
回复
只有一个地方会调用,并且不是在循环里。写这个就是要定期去取资料处理。
李德胜1995 2017-11-28
  • 打赏
  • 举报
回复
因为代码有问题。。。。

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧