美文网首页
如何创建线程池

如何创建线程池

作者: 长孙俊明 | 来源:发表于2019-10-17 18:55 被阅读0次

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

    Executors.newFixedThreadPool

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

    Executors.singleThreadExecutor

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

    Executors.newCachedThreadPool

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

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

    相关文章

      网友评论

          本文标题:如何创建线程池

          本文链接:https://www.haomeiwen.com/subject/utmvmctx.html