您好,我在一个功能中使用带有两个线程的threadPool。

多个客户端以同步方式调用此功能。

在该功能中,我正在使用

ExecutorService executor = Executors.newFixedThreadPool(2);


完成任务后,我将关闭执行器。

executor.shutdown();


但是在日志中我有这样的行

[pool-120069-thread-1]


这是否意味着120069个池仍在运行,或者它只是对池编号的方式。即使关闭它,仍继续编号吗?

最佳答案

这是否意味着120069个池仍在运行,或者它只是对池编号的方式。


别担心,是后者。系统中创建的每个新池都有一个新的序列号,这意味着您已经创建了120069池,但是以前的大多数120068池可能已经关闭。

另一方面,对于每个方法调用都创建一个线程池,考虑只使用一个池,然后在多个并发方法调用中重用它,不是一个好习惯。同样,您可能不需要同步。但这取决于您的实际用例。

最后,您可能要在关机后调用awaitTermination()shutdown()仅“关闭”池,但正在运行的任务继续运行。

08-05 00:23