ExecutorService cachedThreadPool = Executors.newFixedThreadPool(10);
时间: 2023-10-25 07:03:50 浏览: 106
在Java中,可以使用Executors类的newFixedThreadPool方法来创建一个固定大小的线程池。这个方法接受一个整数参数nThreads,表示线程池中的线程数量。例如,可以使用以下代码创建一个固定大小为10的线程池:
ExecutorService cachedThreadPool = Executors.newFixedThreadPool(10);
这个线程池可以执行10个并发任务,当有更多的任务提交时,它们将被放入等待队列中,直到有线程可用为止。通过这种方式,线程池可以控制并发任务的数量,避免资源过度消耗。
需要注意的是,使用线程池执行任务时,可以通过submit方法将任务提交给线程池执行。例如,下面的代码演示了如何使用newFixedThreadPool方法创建一个线程池,并提交一个无限期的任务:
ThreadPoolExecutor executor = (ThreadPoolExecutor) Executors.newFixedThreadPool(5);
ExecutorService executorService = MoreExecutors.getExitingExecutorService(executor, 100, TimeUnit.MILLISECONDS);
executorService.submit(() -> {
while (true) {}
});
在这个例子中,我们首先使用newFixedThreadPool方法创建一个固定大小为5的线程池。然后,我们使用MoreExecutors类的getExitingExecutorService方法创建一个特殊的ExecutorService,它会在指定的时间间隔内关闭线程池。最后,我们使用submit方法提交一个无限期的任务,这个任务会一直执行下去。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [深入学习java源码之Executors.newFixedThreadPool()与Executors.newCachedThreadPool()](https://blog.csdn.net/qq_35029061/article/details/86716334)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]
阅读全文