如何创建线程池

2019-10-17  本文已影响0人  长孙俊明

第一种方式(固定线程数)

Executors.newFixedThreadPool

第二种方式(单个线程数)

Executors.singleThreadExecutor

第三种方式(不固定线程数)

Executors.newCachedThreadPool

工作中,你是如何创建线程池的,哪用上面哪种方式创建。
哪种都不适合,自己创建一个线程池。
为什么?
因为newFixedThreadPool、singleThreadExecutor底层是使用LinkedBlockingQueue,这个默认最大值是int最大数。
newCachedThreadPool底层是使用SychronousQueue,单一阻塞队列。
那么,是如何正确创建线程池,通过以下方式创建

new ThreadPoolExecutor(nThreads, nThreads,
                                      0L, TimeUnit.MILLISECONDS,
                                      new LinkedBlockingQueue<Runnable>(5));
上一篇下一篇

猜你喜欢

热点阅读