【发布时间】:2019-03-21 22:00:20
【问题描述】:
当我的应用程序启动时,会创建一个执行程序服务(使用 java.util.concurrent 中的 Executors.newFixedThreadPool(maxThreadNum))对象。当请求到来时,执行器服务会创建线程来处理它们。
因为在运行时创建线程需要时间,所以我想在启动应用程序时使线程可用,这样当请求到来时,处理时间会更少。
我所做的如下:
executorService = Executors.newFixedThreadPool(200);
for (int i=0; i<200; i++) {
executorService.execute(new Runnable() {
@Override
public void run() {
System.out.println("Start thread in pool " );
}
});
}
应用启动时会在executorService池中创建200个线程。
只是想知道这是在应用程序启动时创建线程的正确方法吗? 还是有更好的方法?
【问题讨论】:
-
这是正确的,这就是发明线程池的确切原因。消除线程的创建延迟。
标签: java executorservice java-threads