executor.shutdown()的使用

The use of executor.shutdown()

看下面这段代码:

     public void pinger()
     {
        ScheduledThreadPoolExecutor executor = new ScheduledThreadPoolExecutor(1);
        executor.scheduleAtFixedRate(runnable, start, rate, TimeUnit.SECONDS);
        executor.shutdown();
     }

这种情况下写关机命令有什么用吗?不同的客户端会创建自己的可运行对象并调用此函数。

当您关闭执行器时,将不会接受任何新任务。由于您在 pinger 方法中创建了一个新任务,因此每个任务都有自己的执行程序。在您编写时关闭只会在当前任务终止后释放资源。

一些注意事项:

  1. 您不应为每个客户端请求创建 Executor
  2. 在客户端请求之外创建 Executor 并将任务提交给 Executor
  3. 当您决定不应该接受 Executor 的新任务时,请关闭执行程序。关闭 Executor 的正确方法在下面解释 post:

How to forcefully shutdown java ExecutorService