美文网首页
java线程池详解

java线程池详解

作者: 弱弱的弱 | 来源:发表于2019-01-02 16:27 被阅读0次

参考文章:ThreadPoolExecutor使用详解
参考文章:ThreadPoolExecutor线程池解析与BlockingQueue的三种实现

  • 构造有定时功能的线程池,配置corePoolSize,无界延迟阻塞队列DelayedWorkQueue;有意思的是:maximumPoolSize=Integer.MAX_VALUE,由于DelayedWorkQueue是 无界队列,所以这个值是没有意义

  • 对于无界队列来说,总是可以加入的(资源耗尽,当然另当别论)。换句说,永远也不会触发产生新的线程!corePoolSize大小的线程数会一直运行,忙完当前的,就从队列中拿任务开始运行。所以要防止任务疯长,比如任务运行的实行比较长,而添加任务的速度远远超过处理任务的时间,而且还不断增加,如果任务内存大一些,不一会儿就爆了

固定线程数量的,有定时功能的线程池

public static ScheduledExecutorService newScheduledThreadPool(int corePoolSize) {
        return new ScheduledThreadPoolExecutor(corePoolSize);
    }

public static ScheduledExecutorService newScheduledThreadPool(
            int corePoolSize, ThreadFactory threadFactory) {
        return new ScheduledThreadPoolExecutor(corePoolSize, threadFactory);
    }

public ScheduledThreadPoolExecutor(int corePoolSize,
                             ThreadFactory threadFactory) {
        super(corePoolSize, Integer.MAX_VALUE, 0, TimeUnit.NANOSECONDS,
              new DelayedWorkQueue(), threadFactory);
    }

相关文章

  • Java调度线程池ScheduleExecutorService

    作者: 一字马胡 转载标志 【2017-11-03】 更新日志 链接 Java线程池详解(一)Java线程池详解...

  • Java 线程池详解

    Java ThreadPoolExecutor详解 ThreadPoolExecutor是Java语言对于线程池的...

  • 2019-05-04 线程池ThreadPoolExecutor

    1.线程池参数详解 在上一篇文章java常用线程池中,可以看到它们都使用了一个核心的线程池类ThreadPoolE...

  • Java线程池详解

    newCachedThreadPool是Executors工厂类的一个静态函数,用来创建一个可以无限扩大的线程池。...

  • Java 线程池详解

    构造一个线程池为什么需要几个参数?如果避免线程池出现OOM?Runnable和Callable的区别是什么?本文将...

  • Java线程池详解

    转载:https://www.jianshu.com/p/47e903ab1bec 一、概述 在我们的开发中经常会...

  • Java线程池详解

    Java线程池 一、Executor(执行器)框架 ​ 创建一个新线程是有一定代价的,以为涉及与操作系统的交互...

  • Java 线程池详解

    构造一个线程池为什么需要几个参数?如果避免线程池出现OOM?Runnable和Callable的区别是什么?本文将...

  • Java 线程池详解

    Java 线程池 Java 线程池模型的关键几个类和接口包括:Executor,Executors,Executo...

  • Java 线程池详解

    1. 线程池的概念 1.1 基本概念 由于线程的生命周期中包括创建、就绪、运行、阻塞、销毁阶段,当我们待处理的任务...

网友评论

      本文标题:java线程池详解

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