线程-线程池

作者: go_2021 | 来源:发表于2022-02-01 12:29 被阅读0次

耐心是一切聪明才智的基础。

什么是线程池? 为什么要使用它?
  • 线程复用 避免线程的创建销毁的系统开销
  • 线程数量控制 避免线程不断膨胀 导致系统崩溃
  • 任务管理 任务 异步执行
核心参数
  • 核心线程数 prestartAllCoreThreads 可以在初始化时候全部创建。
  • 最大线程数 和核心数一致 时线程数量固定 存活时间没有意义
  • 闲置线程存活时间
  • 时间单位
  • 线程队列
    • 直接队列 SynchronousQueue 跟没有一样。。
    • 无限队列 LinkedBlockingQueue 可指定也可不指定。
    • 有限队列 ArrayBlockingQueue 初始化指定大小。
    • 延迟队列DelayQueue,根据aqs.reentranlock.condition实现的await,signal机制实现。
  • 线程工厂
  • 拒绝策略
    • 丢弃&异常(主线程停止)
    • 丢弃&不抛异常
    • 丢弃队列中任务,重试
    • 重试,不断重试
任务的执行流程
image.png
有哪些状态

https://www.jianshu.com/p/c22fa33a4213

image.png
有意思的实现
  • 一个变量代表多个意思
    线程池 用线程安全 atomicInteger ctl 来表示
    线程池的状态 以及 线程的数量
    高3位保存runState,低29位保存workerCount
Java中的fork join框架
image.png

相关文章

  • java线程池

    线程VS线程池 普通线程使用 创建线程池 执行任务 执行完毕,释放线程对象 线程池 创建线程池 拿线程池线程去执行...

  • Java线程池的使用

    线程类型: 固定线程 cached线程 定时线程 固定线程池使用 cache线程池使用 定时调度线程池使用

  • java----线程池

    什么是线程池 为什么要使用线程池 线程池的处理逻辑 如何使用线程池 如何合理配置线程池的大小 结语 什么是线程池 ...

  • Spring Boot之ThreadPoolTaskExecut

    初始化线程池 corePoolSize 线程池维护线程的最少数量keepAliveSeconds 线程池维护线程...

  • Thread

    队列 线程锁 多线程,线程池 队列 多线程爬虫示例 多线程 自定义线程 线程池

  • ThreadPool

    线程池核心参数 corePoolSize: int 核心线程数 线程池初始化后,线程池中没有任何线程,线程池会等待...

  • 线程池相关知识

    线程池 1. 什么是线程池 线程的池化,一个线程的容器、集合,包含多个线程 2. 为什么要用线程池 线程对于操作系...

  • 线程池

    JDK线程池 为什么要用线程池 线程池为什么这么设计 线程池原理 核心线程是否能被回收 如何回收空闲线程 Tomc...

  • 线程池

    1.线程池简介 1.1 线程池的概念 线程池就是首先创建一些线程,它们的集合称为线程池。使用线程池可以很好地提高性...

  • java 线程池使用和详解

    线程池的使用 构造方法 corePoolSize:线程池维护线程的最少数量 maximumPoolSize:线程池...

网友评论

    本文标题:线程-线程池

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