ScheduledThreadPoolExecutor ses = new ScheduledThreadPoolExecutor(1);
ses.scheduleAtFixedRate(new timeThread(), 6000, 6000,TimeUnit.MILLISECONDS);如何重新计时执行timeThread任务。我傻傻的shutdown()了,再重新new一个线程池
ses.shutdown();
ses = new ScheduledThreadPoolExecutor(1);
ses.scheduleAtFixedRate(timeThread, 6000, 6000,TimeUnit.MILLISECONDS);
有没好办法? 还是都是这么整的?
ses.scheduleAtFixedRate(new timeThread(), 6000, 6000,TimeUnit.MILLISECONDS);如何重新计时执行timeThread任务。我傻傻的shutdown()了,再重新new一个线程池
ses.shutdown();
ses = new ScheduledThreadPoolExecutor(1);
ses.scheduleAtFixedRate(timeThread, 6000, 6000,TimeUnit.MILLISECONDS);
有没好办法? 还是都是这么整的?
你的需求就是要求你要先shutdown,然后在生成新的线程池嘛。(这种需求不是很多啊)
当然也可以设计一个flag,让第一个线程自动结束。
你后面继续提交新的线程到线程池就是了。
Future future = ses.scheduleAtFixedRate(new timeThread(), 6000, 6000,TimeUnit.MILLISECONDS); void resetInactivityTimer() {
if (ses.isShutdown() == false) {
if (future.cancel(false)) {
future = ses.scheduleAtFixedRate(timeThread, 6000, 6000,
TimeUnit.MILLISECONDS);
} else {
// donothing
System.out.println("计时器不需要重置");
}
} }