【发布时间】:2020-11-01 22:38:08
【问题描述】:
所以我有一个这样运行的线程:
Runnable runnable = new Runnable() {
@Override
public void run() {
System.out.println("redo groupMonitor ... ");
if (redogmSafer < 1) {
groupMonitor.run(remoteHost, port);
} else {
}
redogmSafer = 100;
}
};
ScheduledExecutorService service = Executors.newSingleThreadScheduledExecutor();
service.scheduleAtFixedRate(runnable, 0, delayStart, TimeUnit.MILLISECONDS);
if (redogmSafer < 1) {
} else {
service.shutdown();
service.shutdownNow();
redogmSafer = 0;
}
我想再次run() Thread,在它由于异常或其他原因退出之后(发生所有 4-5 小时)。
我尝试过shutdown() 和shutdownNow(),但这也无济于事。就像 Java 在启动和关闭后不想重做线程......
【问题讨论】:
-
没错。一旦线程终止,您将无法再次启动它。但是,自从您使用
scheduleAtFixedRate以来,问题是什么?稍后执行 get 的任务。请edit您的问题包含您拥有的完整源代码作为minimal reproducible example。 -
或许你应该解释一下
groupMonitor.run(remoteHost, port)。
标签: java