获取线程池中任务执行数量

获取线程池中任务执行数量

  • 通过线程池进行任务处理,有时我们需要知道线程池中任务的执行状态。
  • 通过ThreadPoolExecutor的相关API实时获取线程数量,排队任务数量,执行完成线程数量等信息。

实例

  • private static ExecutorService es = new ThreadPoolExecutor(50, 100, 0L, TimeUnit.MILLISECONDS,
    new LinkedBlockingQueue<Runnable>(
    100000
    ));public static void main(String[] args) throws Exception{
    for (int i = 0; i < 100000; i++) {es.execute(() -> {System.out.print(1);try{Thread.sleep(1000);} catch(InterruptedException e) {e.printStackTrace();}});}ThreadPoolExecutor tpe = ((ThreadPoolExecutor) es);
    while (true) {System.out.println();int queueSize = tpe.getQueue().size();System.out.println("当前排队线程数:"+ queueSize);int activeCount = tpe.getActiveCount();System.out.println("当前活动线程数:"+ activeCount);long completedTaskCount = tpe.getCompletedTaskCount();System.out.println("执行完成线程数:"+ completedTaskCount);long taskCount = tpe.getTaskCount();System.out.println("总线程数:"+ taskCount);Thread.sleep(3000);}
    }
    
  • 比如我们每隔3秒获取一次执行状态信息,总共有50个工作线程。

  • 第一次输出:

  •  
    当前排队线程数:
    99950当前活动线程数:
    50执行完成线程数:
    0总线程数(排队线程数 + 活动线程数 +  执行完成线程数):
    100000
    
  • 第二次输出:

  •  
    当前排队线程数:
    99800当前活动线程数:
    50执行完成线程数:
    150总线程数(排队线程数 + 活动线程数 +  执行完成线程数):
    100000
    
  • 说明通过API可以获取不断变化的线程及线程任务数量了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/600446.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring Boot 生产就绪中文文档-下

本文为官方文档直译版本。原文链接 由于篇幅较长&#xff0c;遂分两篇。上半部分中文文档 Spring Boot 生产就绪中文文档-下 度量标准入门受支持的监控系统AppOpticsAtlasDatadogDynatracev2 API自动配置手动配置 v1 API (旧版)与版本无关的设置 ElasticGangliaGraphiteHumioIn…

AUTOSAR从入门到精通-漫谈autosar软件架构(五)

目录 前言 原理 Autosar软件架构 BSW层中的四个分层 虚拟功能总线VFB及运行环境RTE

推荐几个免费的HTTP接口Mock网站和工具

在前后端分离开发架构下&#xff0c;经常遇到调用后端数据API接口进行测试、集成、联调等需求&#xff0c;比如&#xff1a; &#xff08;1&#xff09;前端开发人员很快开发完成了UI界面&#xff0c;但后端开发人员的API接口还没有完成&#xff0c;不能进行前后端数据接口对接…

Java内存泄漏问题分析

内存泄漏也是一个老八股文了&#xff0c;下面来看看实际项目中内存泄漏的场景分析 时间回到9月某一天 分析阶段一 现象&#xff1a;在当时各种请求在那段时间响应很慢&#xff0c;特别是 kafka异步消费线程 不足点&#xff1a;当时主业务基本不可用&#xff0c;有点急&#…

线特征_LSD直线检测算法和LBD直线描述子

目录 1. 线特征简介 2. LSD直线检测算法 3. LBD直线描述算法 主要参考:2022 硕士论文 南京邮电大学 点线融合的单目语义视觉SLAM 郭强 1. 线特征简介 线特征优点: 线特征在于具有天然的光照及视角不变性,同时更高级的特征也使追踪的鲁棒性和准确性有所提高。特别是在特…

负责任的人工智能与人机环境系统智能

负责任的人工智能是指在人工智能系统的设计、开发、管理、使用和维护过程中&#xff0c;所有相关的角色&#xff08;包括设计者、开发者、管理者、使用者、维护者等等&#xff09;都承担其行为的道义、法律和社会责任。这意味着这些角色需要确保人工智能系统的设计与使用符合伦…

Mathtype7.4安装与嵌入WPS

文章目录 Mathtype安装教程&#xff08;7.4&#xff09;Mathtype简介Mathtype下载安装软件下载软件安装运行MathType.exe运行注册表 Mathtype嵌入wps Mathtype安装教程&#xff08;7.4&#xff09; Mathtype简介 MathType是一款强大的数学公式编辑器&#xff0c;适用于教育教…

mysql之数据类型、建表以及约束

目录 一. CRUD 1.1 什么是crud 1.2 select(查询) 1.3 INSERT(新增) 1.4 UPDATE(修改&#xff09; 1.5 DELETE(删除) 二. 函数 2.1 常见函数 2.2 流程控制函数 2.3聚合函数 三. union与union all 3.1 union 3.2 union all 3.3 具体不同 3.4 结论 四、思维导图 一. CRUD 1.1…

七、HTML 文本格式化

一、HTML 文本格式化 加粗文本斜体文本电脑自动输出 这是 下标 和 上标 <!DOCTYPE html> <html><head><meta charset"utf-8"><title>HTML文本格式化</title> </head><body><b>加粗文本</b><br>…

计算机网络——应用层(1)

计算机网络——应用层&#xff08;1&#xff09; 小程一言专栏链接: [link](http://t.csdnimg.cn/ZUTXU) 协议原理内容原理小结体系结构分类——重点已标注 进程通信常见形式 因特网运输服务TCP&#xff08;传输控制协议&#xff09;UDP&#xff08;用户数据报协议&#xff09;…

简易机器学习笔记(十)Windows下 PaddlePaddle配置CUDA加速环境

前言 大伙既然都来做这个了&#xff0c;那配个CUDA环境肯定是必不可少的了吧&#xff08;笑&#xff09; 最前面的最前面&#xff0c; 流程 确定当前设备支持的CUDA版本安装CUDA Toolkit 和 GPU版的Paddlepaddle下载cuDNN Archive手动放置配套的cuDNN到指定文件夹测试 1.确…

kubectl命令中常用的缩写

在kubectl的学习中&#xff0c;经常见到一些缩写&#xff0c;干脆整理一番&#xff0c;统一学习更加方便记忆。 一览表 简称全称中文释义举例nsnamespace命名空间kubectl get namespace 等价于 kubectl get ns-A--all-namespaces全部命名空间kubectl get pods --all-namespac…

机械配件移动商城课程概述

项目介绍 开发准备 任务 开源库介绍 框架搭建 工具类

Mac上安装 Node.js 的版本管理工具 n,以及 n 使用,的使用

安装 最近刚更换 Mac 本进行项目的开发&#xff0c;刚上手 Mac 本还不是很熟练&#xff0c;需要安装 Node.js 的包管理工具 在 Windows 上我是实用的 nvm 来管理的 Node 版本&#xff0c;但是我尝试下载 Nvm &#xff0c;发现下载安装后的 Nvm 无法使用&#xff0c;提示 “Th…

性能优化-OpenMP基础教程(五)-全面讲解OpenMP基本编程方法

本文主要介绍OpenMP编程的编程要素和实战&#xff0c;包括并行域管理详细实战、任务分担详细实战。 &#x1f3ac;个人简介&#xff1a;一个全栈工程师的升级之路&#xff01; &#x1f4cb;个人专栏&#xff1a;高性能&#xff08;HPC&#xff09;开发基础教程 &#x1f380;C…

宏基因组序列分析工具EukRep

文章&#xff1a;Genome-reconstruction for eukaryotes from complex natural microbial communities | bioRxiv 仓库&#xff1a;patrickwest/EukRep: Classification of Eukaryotic and Prokaryotic sequences from metagenomic datasets (github.com) 推荐使用conda进行安…

开启Android学习之旅-3-Android Activity

Android Activity 本文总结《第一行代码 Android》第3版的内容 环境&#xff1a; Android Studio Giraffe | 2022.3.1 Patch 3 Activity 是什么&#xff1f; Activity 简单将就是UI界面&#xff0c;包含两部分 Activity 类 和应用布局文件&#xff0c;如果是 Compose 则另说&…

DS|图(连通与生成树)

题目一&#xff1a;DS图 -- 图的连通分量 题目描述&#xff1a; 输入无向图顶点信息和边信息&#xff0c;创建图的邻接矩阵存储结构&#xff0c;计算图的连通分量个数。 输入要求&#xff1a; 测试次数t 每组测试数据格式如下&#xff1a; 第一行&#xff1a;顶点数 顶点…

【Linux进程】 进程的理解

目录 前言 1. 系统管理 2. 进程 2.1 概念 2.2 进程的调度 2.3 描述进程-PBC 3. 查看进程 4. 通过系统调用获取进程标示符 前言 在计算机科学领域&#xff0c;进程是一种重要的概念&#xff0c;在日常学习中也经常遇到进程这个概念&#xff0c;那么进程到底是什么&#x…

tkinter实现一个简易窗口

tkinter目录 1. 最简易的窗口2. 加了标签、按钮、输入框&#xff0c;并且按钮连接了函数 1. 最简易的窗口 import tkinter as tkwindow tk.Tk()window.title(我的窗口) # 设置窗口名 window.geometry(500x300) # 设置窗口长宽label tk.Label(window, text文字文字文字, bg…