zoukankan      html  css  js  c++  java
  • ThreadPoolExecutor线程池执行器源码解析

    线程池主要解决了2个问题:

    1. 复用线程,降低线程创建销毁的开销;2. 线程资源限制和资源管理 —— 限制线程数,动态增加减少线程。

    继承AbstractExecutorService, 一个int变量维护2个状态, 高3位线程池状态, 低29位(32位机)线程数;
    COUNT_BIT = Integer.SIZE- 3
    移位操作表示线程池的5种状态:
    000 SHUTDWON 拒绝接受任务,要处理完队列中的任务
    001 STOP 中断正在处理的任务
    010 TIDYING: 整理中: 队列中任务处理完并且线程数为0
    011 TERMINATED 已终止
    111 运行中(默认)

    1. 线程池状态切换:
      2.1 运行中 -> SHUTDOWN shutdown(); // 拒绝接受任务,要处理完队列中的任务
      2.2 运行中 -> SHUTDOWN -> STOP shutdownNow(); // 拒绝接受任务,丢弃队列中的任务
  • 相关阅读:
    vue父子组件传值的方式
    定时任务写法
    仅仅为笔记
    consul剔除某个服务
    mybatis批量查询
    一次eureka的事故
    feign的工作原理
    JVM优化
    threadlocal应用
    秋招总结
  • 原文地址:https://www.cnblogs.com/lix-y/p/13843997.html
Copyright © 2011-2022 走看看