我正在使用 Thread Pool Executor 更改遗留设计。详细情况如下:-
旧版:- 在旧版设计的情况下,在应用程序启动时创建 600 个线程。并放置在各种池中,然后在需要时将其拾取并将任务分配给相应的线程。
新:-在新设计中,我用执行器服务替换了线程池
ThreadPoolExecutor thpool = new ThreadPoolExecutor(coreSize,poolsize,...);
我观察到的是,在 Executor 的情况下,在启动时没有创建线程。它们是在客户端发出请求时创建的。因此,与前一个相比,在内存中创建的线程要少得多。
但我的问题是这是正确的方式,因为线程创建也是触发调用时发生的开销。
请告诉哪个更重,在从客户端调用时处理线程创建或按照旧方法在内存中存在空闲线程。
还建议使用哪个 Executor 池,以便在性能方面获得最佳结果。