该程序后9个打印完成:如何停止ScheduledExecutorService?
class BeeperControl {
private final ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1);
public void beep() {
final Runnable beeper = new Runnable() {
public void run() {
System.out.println("beep");
}
};
final ScheduledFuture<?> beeperHandle = scheduler.scheduleAtFixedRate(
beeper, 1, 1, SECONDS);
scheduler.schedule(new Runnable() {
public void run() {
beeperHandle.cancel(true);
}
}, 1 * 9, SECONDS);
}
public static void main(String[] args) {
BeeperControl bc = new BeeperControl();
bc.beep();
}
}
如何停止的处理(在蚀例如即java程序),因为它不会在第9秒的时间限制之后停止?
那么......你是什么意思“它在9秒内没有停止时间限制”?我只是测试了它,9秒后“哔哔”停止了,如预期的那样。当然,整个程序并没有停止,因为你没有关闭线程池。如果 - 而不是取消蜂鸣器 - 只需在9秒钟后关闭调度程序,程序也将正常退出。这是你想要的行为吗? – Seelenvirtuose