您好,我在一个函数中使用带有两个线程的线程池。
该函数由多个客户端以同步方式调用。
在我正在使用的那个函数中
ExecutorService executor = Executors.newFixedThreadPool(2);
完成任务后我将关闭执行器。
executor.shutdown();
但在日志中我有这样的行
[pool-120069-thread-1]
这是否意味着 120069 个池还活着,或者这只是池的编号方式。即使关闭后它还会继续编号吗?
这是否意味着 120069 个池还活着,或者这只是池的编号方式。
别担心,是后者。系统中创建的每个新池都会获得一个新的序列号,这意味着您已经创建了120069
池,但可能是之前的大部分120068
泳池已经关闭。
另一方面,为每个方法调用创建一个线程池并不是一个好的做法,请考虑只使用一个线程池并在多个并发方法调用中重用它。另外,您可能不需要同步。但这取决于您的实际用例。
最后,您可能想打电话awaitTermination()
关机后。shutdown()
only "关上门" 到池中,但正在运行的任务继续运行。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)