美文网首页
java中的线程池

java中的线程池

作者: 今天不想掉头发 | 来源:发表于2019-08-12 22:24 被阅读0次

线程池的好处:

  1. 降低资源你消耗
  2. 提高响应速度
  3. 提高线程的可管理性

线程池的处理流程:

  1. 如果正在运行的线程数量小于 corePoolSize,那么马上创建线程运行这个任务
    2、如果正在运行的线程数量大于或等于 corePoolSize,那么将这个任务放入队列
    3、如果这时候队列满了,而且正在运行的线程数量小于 maximumPoolSize,那么还是要创建非核心线程立刻运行这个任务
    4、如果队列满了,而且正在运行的线程数量大于或等于 maximumPoolSize,那么线程池会抛出异常RejectExecutionException(拒绝策略可能是直接抛出异常、直接抛弃不执行、抛弃队列最前面的任务并重新执行任务、自定义策略)

Java 5+中的Executor接口定义一个执行线程的工具。它的子类型即线程池接口是ExecutorService。要配置一个线程池是比较复杂的,尤其是对于线程池的原理不是很清楚的情况下,因此在工具类Executors面提供了一些静态工厂方法,生成一些常用的线程池,如下所示:

  • newSingleThreadExecutor:创建一个单线程的线程池。适用于需要保证顺序地执行各个任务。
  • newFixedThreadPool:创建固定大小的线程池。适用于满足资源管理的需求,而需要限制当前线程数量的应用场景,适用于负载较重的服务器。
  • newCachedThreadPool:创建一个可缓存的大小无界的线程池。适用于很多的短期异步任务的小程序,或者是负载较轻的服务器。
  • newScheduledThreadPool:创建一个大小无限的线程池。适用于多个后台线程执行周期任务,同时为了满足资源管理的需求而需要限制后台线程的数量的

相关文章

  • 19. 线程池

    Android 中的线程池就是 java 中的线程池,即 ThreadPoolExecutor 类。 Java 通...

  • Android 线程池的封装

    GlobalThreadPools.java: 调用: 线程池线程池概念来源于Java中的Executor,它是一...

  • Java线程池总结

    本篇文章讲述Java中的线程池问题,同样适用于Android中的线程池使用。本篇文章参考:Java线程池分析,Ja...

  • Java线程池详解

    本篇文章讲述Java中的线程池问题,同样适用于Android中的线程池使用。本篇文章参考:Java线程池分析,Ja...

  • Java线程池解析

    参考文章:Java并发:线程池,饱和策略 前言 Java线程池的使用在工作中还是比较常见的,线程池可以减小线程建立...

  • ThreadPoolExecutor的用法

    Java中的线程池 一般我们说起Java中的线程池,其实指的是java.util.concurrent包下的Thr...

  • Android中线程池的使用分析

    引言:说起线程池,学习过Java基础的同学估计都不陌生,Android中的线程池其实就是java的线程池。那么为什...

  • Java多线程之线程池深入讲解

    1 线程池介绍 1.1 线程池概念 Sun在Java5中,对Java线程的类库做了大量的扩展,其中线程池就是Jav...

  • Java并发

    一、线程池 线程池:事先将多个线程放到容器中,用的时候不用New线程,直接从池中获取。 Java中的线程池有: 1...

  • 分析jdk-1.8-ForkJoinPool实现原理(上)

    Java并发编程源码分析系列: 分析Java线程池的创建 分析Java线程池执行原理 分析Java线程池Calla...

网友评论

      本文标题:java中的线程池

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