线程池理解

作者: Sum_Day | 来源:发表于2019-04-17 10:07 被阅读0次

我的Github地址

有问题直接留言或 联系QQ:1079569023


Thread线程

  1. Linux:一个进程:1000个Thread限制
  2. Windows:20000个Thread

ThradPoolExecutor

  1. corePoolSize:核心线程数,缓存的线程数量
  2. maximumPoolSize: 10
BlockingQueue到达最大容量后,可以添加的任务数量 

10:用来在增加5个线程来执行任务,最多存在10个线程
  1. keepAliveTime:
任务数量减少后,只会杀掉maximumPoolSize定义多出来的几个线程,不会杀掉核心线程数
  1. BlockingQueue:到达核心线程数后,任务存放点
阻塞队列:先进先出,队列满的时候,放任务的线程会被阻塞

1.add,remove->add满的时候,直接抛异常
2.offer,pull->add满的时候,不抛异常
3.put,take ->会阻塞调用线程,主要是用这个

Android常用2个阻塞对列
LinkedBlockingQueue/ArrayBlockingQueue
  1. RejectedExecutionHandler:任务超出BlockingQueue+maximumPoolSize 后,执行的拒绝策略
1.抛弃最早的任务
2.直接抛出异常(AbortPolicy默认参数)
3.原线程执行
4.直接抛弃

6.合理配置线程池

1.CPU密集型:线程池个数不要超过系统CPU核心数
Runtime.getRuntime.availableProessors

2.IO密集型:无法确定IO操作数量
缺省默认是:2*CPU个数

3.参考Android中的AsyncTask

相关文章

  • 万字长文:带你透彻理解“线程池”

    目标 【理解】线程池的基本概念 【理解】线程池工作原理 【掌握】自定义线程池 【应用】java内置线程池 【应用】...

  • 2021-03-10 阿里p6教你理解学习线程池

    阿里p6教你理解学习线程池 对线程或者线程池的理解程度(0-10) 线程:同时运行多个任务,提高任务处理能力 池化...

  • 深入理解Java线程池

    深入理解Java线程池 线程池初探 所谓线程池,就是将多个线程放在一个池子里面(所谓池化技术),然后需要线程的时候...

  • JUC线程池(2):ThreadPoolExecutor类

    ThreadPoolExecutor简介 ThreadPoolExecutor是线程池类。线程池可以理解为“存放一...

  • J.U.C——线程池专题

    主要讨论以下问题: 认识Java线程池 线程池的种类,区别,和使用场景 线程池的工作流程 线程池几个参数的理解 分...

  • Java线程池快速理解

    Java线程池 [toc] 什么是线程池 线程池就是有N个子线程共同在运行的线程组合。 举个容易理解的例子:有个线...

  • [JAVA][线程池]

    1.线程池理解 线程池在系统启动时即创建大量空闲的线程,程序将一个Runnable对象传给线程池,线程池就会启动一...

  • 线程池的原理

    参考 深入Java源码理解线程池原理 线程池是对CPU利用的优化手段 线程池使用池化技术实现,替他的实现还有连接池...

  • 线程池ThreadPoolExecutor详解

    ThreadPoolExecutor1.什么是线程池?(首先要理解什么是线程)线程池[https://so.csd...

  • Android 线程

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

网友评论

    本文标题:线程池理解

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