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

真心求教!
...全文
234 3 点赞 打赏 收藏 举报
写回复
3 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
kampoo 2017-11-29
仅从日志看难以说明是2次,也可能你的Runnable子类在方法的进入-退出都输出了同样的日志呢。 另外你的运行环境是什么?spring吗?如果引入两次context文件,也会造成同样的问题。

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

6.7w+

社区成员

J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
申请成为版主
帖子事件
创建了帖子
2017-11-28 05:30
社区公告
暂无公告