您好,我在一个功能中使用带有两个线程的threadPool。
多个客户端以同步方式调用此功能。
在该功能中,我正在使用
ExecutorService executor = Executors.newFixedThreadPool(2);
完成任务后,我将关闭执行器。
executor.shutdown();
但是在日志中我有这样的行
[pool-120069-thread-1]
这是否意味着120069个池仍在运行,或者它只是对池编号的方式。即使关闭它,仍继续编号吗?
最佳答案
这是否意味着120069个池仍在运行,或者它只是对池编号的方式。
别担心,是后者。系统中创建的每个新池都有一个新的序列号,这意味着您已经创建了120069
池,但是以前的大多数120068
池可能已经关闭。
另一方面,对于每个方法调用都创建一个线程池,考虑只使用一个池,然后在多个并发方法调用中重用它,不是一个好习惯。同样,您可能不需要同步。但这取决于您的实际用例。
最后,您可能要在关机后调用awaitTermination()
。 shutdown()
仅“关闭”池,但正在运行的任务继续运行。