美文网首页
1、对比几种线程池的创建

1、对比几种线程池的创建

作者: kele2018 | 来源:发表于2020-03-17 13:13 被阅读0次
public static ExecutorService newCachedThreadPool() {
        return new ThreadPoolExecutor(0, Integer.MAX_VALUE,60L, TimeUnit.SECONDS,new SynchronousQueue<Runnable>());
}

public static ScheduledExecutorService newSingleThreadScheduledExecutor() {
    return new DelegatedScheduledExecutorService(new ScheduledThreadPoolExecutor(1));
}

/**SingleThreadExecutor、FixedThreadPool允许的请求队列的长度为Integer.MAX_VALUE(LinkedBlockingQueue初始化的时候默认容量为Integer.MAX_VALUE),这样容易堆积大量的请求,导致OOM**/
public static ExecutorService newFixedThreadPool(int nThreads) {
        return new ThreadPoolExecutor(nThreads, nThreads,0L, TimeUnit.MILLISECONDS,new LinkedBlockingQueue<Runnable>());
}

public static ExecutorService newSingleThreadExecutor() {
        return new FinalizableDelegatedExecutorService (new ThreadPoolExecutor(1, 1,  0L, TimeUnit.MILLISECONDS,
                                    new LinkedBlockingQueue<Runnable>()));
}

public static ExecutorService newWorkStealingPool() {
        return new ForkJoinPool(Runtime.getRuntime().availableProcessors(), ForkJoinPool.defaultForkJoinWorkerThreadFactory,
             null, true);
}

public static ExecutorService unconfigurableExecutorService(ExecutorService executor) {
        if (executor == null)
            throw new NullPointerException();
        return new DelegatedExecutorService(executor);
    }

结论:有一大半线程池内部的实现都是ThreadPoolExecutor。

相关文章

  • 1、对比几种线程池的创建

    结论:有一大半线程池内部的实现都是ThreadPoolExecutor。

  • 拜托,不要再问我线程池啦!

    Java提供了几种便捷的方法创建线程池,通过这些内置的api就能够很轻松的创建线程池。在java.util.con...

  • 线程池相关

    线程池 1.几种常用的线程池 包括:newSingleThreadExecutor、newFixedThreadP...

  • JDK提供的几种线程池比较

    JDK提供的几种线程池 newFixedThreadPool创建一个指定工作线程数量的线程池。每当提交一个任务就创...

  • ThreadPoolExecutor

    1 创建线程池 通过ThreadPoolExecutor创建线程池: corePoolSize:核心线程的数量。m...

  • 线程

    创建线程的几种方式 Thread: Runanble: Callanble:需要引入中间人来开始线程的方法 线程池...

  • JDK多任务执行框架

    1、为什么要使用线程池?2、线程池有什么作用?3、说说几种常见的线程池及使用场景。4、线程池都有哪几种工作队列?5...

  • 线程池面试题

    1、为什么要使用线程池?2、线程池有什么作用?3、说说几种常见的线程池及使用场景。4、线程池都有哪几种工作队列?5...

  • 线程池

    线程池 a. 基本组成部分: 1、线程池管理器(ThreadPool):用于创建并管理线程池,包括创建线程池,销毁...

  • 线程池学习笔记

    1、线程池的定义 2、Executors创建线程池的方式 3、ThreadPoolExecutor对象 4、线程池...

网友评论

      本文标题:1、对比几种线程池的创建

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