美文网首页转载部分
线程池(1) --线程池的好处以及参数说明

线程池(1) --线程池的好处以及参数说明

作者: 海风chui | 来源:发表于2018-05-10 22:00 被阅读0次

通过Thread创建线程的弊端

线程池

参数介绍

三个参数的关系:

1.当前运行的线程数小于corePoolSize时,直接创建新线程处理任务,即使其他线程空闲。

2.当corePoolSize  <= 当前线程数 <= maximunPoolSize ,只有当workQueue满的时候才创建新的线程处理任务。

3.当corePoolSize = maximumPoolSize时,创建的线程池大小是固定的,如果有新任务提交,当workQueue没满的时候,将请求放入workQueue,等待线程空闲后去取出任务进行处理,如果满了,还有新任务提交,则通过拒绝策略参数来指定策略去处理任务。

4.workQueue是线程池中保存等待执行的任务的阻塞队列,当提交新任务到线程池后,线程池会根据当前线程池中正在运行的线程数量,决定该任务的处理方式,总共有3种:直接切换,用无界队列,用有界队列。

——直接切换:这种方式常用的队列是SynchronousQueue;

——使用无界队列:一般使用基于链表的阻塞队列LinkedBlockingQueue。如果使用这种方式,那么线程池中能够创建的最大线程数就是corePoolSize,而maximunPoolSize就不会起作用了。当线程池中所有的核心线程都是Running状态时,这时一个新的任务提交就会放入等待队列中。

——使用有界队列:一般使用ArrayBlockingQueue。使用该方式可以将线程池的最大线程数量限制为maximunPoolSize,这样能够降低资源的消耗,但同时这种方式也使得线程池对线程的调度变得更加困难,因为线程池和队列的容量都是有限的值,所以要想使线程池处理任务的吞吐率达到一个相对合理的范围,又想使线程调度相对简单,并且还要尽可能的降低线程池对资源的消耗,就需要合理的设置这两个数量。

        如果要想降低系统资源的消耗(包括CPU的使用率,操作系统资源的消耗,上下文环境切换的开销等),可以设置较大的队列容量和较小的线程池容量,但这样也会降低线程处理任务的吞吐量。

        如果提交的任务经常发生堵塞,那么可以考虑通过调用setMaximunPoolSize()方法来重新设定线程池容量。如果队列的容量设置的太小,通常需要将线程池的容量设置大一点,这样CPU的使用率会相对的高一鞋。但如果线程池的容量设置的过大,则在提交的任务数量太多的情况下,并发量会增加,那么线程之间的调度就是一个要考虑的问题,因为这样反而有可能降低处理任务的吞吐量。

拒绝策略:1.(默认策略)直接抛出异常。2.让线程抛出异常。3.抛弃队列中最早的任务。4.抛弃当前任务。

相关文章

  • Android 线程

    1、线程池的好处?四种线程池的使用场景,线程池的几个参数的理解? 使用线程池的好处在于,是可以减少在创建和销毁线程...

  • 安卓线程池概述

    提纲 是什么(使用线程池的原因,线程池的定义,好处,线程池原理) 怎么用(常见的使用方式,以及各个参数的作用) 为...

  • 线程池(1) --线程池的好处以及参数说明

    通过Thread创建线程的弊端 线程池 参数介绍 三个参数的关系: 1.当前运行的线程数小于corePoolSiz...

  • 线程池总结

    1 第一篇 初识线程池主要讲线程池的好处,线程池的分类,以及线程池的结构图2 第二篇 再识线程池通过线程池的构造函...

  • Java线程池的总结

    Java线程池总结 线程池的好处 降低资源消耗 提高响应速度 提高线程的可管理性 线程池相关的具体参数 coreP...

  • 线程池ThreadPoolTaskExecutor 配置

    参数说明:corePoolSize:线程池维护线程最小数量maxPoolSize:线程池维护线程最大数量keepA...

  • 线程池相关

    ThreadPoolExecutor是线程池的基本函数,其中几个参数说明如下: corePoolSize 线程池的...

  • Android 线程池原理

    线程池核心类 : ThreadPoolExecutor:提供了一系列参数来配置线程池 线程池优点: 1.重用线程池...

  • 线程池核心参数

    线程池核心参数 1)corePoolSize(线程池基本大小) 2)maximumPoolSize(线程池最大数量...

  • Java之线程池

    1.Executors Executors提供的常用线程池:线程池的构造方法供4个,具体如下: 参数说明: a.c...

网友评论

    本文标题:线程池(1) --线程池的好处以及参数说明

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