我正在使用 ThreadPoolexecutor,将其替换为旧版 Thread。
我创建了执行器,如下所示:
pool = new ThreadPoolExecutor(coreSize, size, 0L, TimeUnit.MILLISECONDS,
new LinkedBlockingQueue<Runnable>(coreSize),
new CustomThreadFactory(name),
new CustomRejectionExecutionHandler());
pool.prestartAllCoreThreads();
这里的核心大小是 maxpoolsize/5。我已经在启动应用程序时预先启动了所有核心线程,大约有 160 个线程。
在遗留设计中,我们创建并启动了大约 670 个线程。
但关键是即使在使用 Executor 并创建和替换遗留设计之后,我们也没有得到更好的结果。
对于结果内存管理,我们使用 top 命令查看内存使用情况。对于时间,我们以毫秒为单位放置 System.currentTime 的记录器来检查使用情况。
请告诉如何优化这个设计。谢谢。