当前位置: 首页 > news >正文

线程池的一些问题

核心线程数1.最大线程5.队列5.存活时间10s

1.场景一

如果核心线程数.被一直占用得不到释放.新进来1个任务.会怎么样?

答: 会在队列中中死等. 只要进来的任务.不超过队列的长度,就会一直挡在队列中死等


package com.lin;import java.util.concurrent.Executors;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.LinkedBlockingQueue;/*** @author lin*/
public class ThreadPoolExample {public static void main(String[] args) {// 创建线程池ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(1,                        // 核心线程数5,                        // 最大线程数1,                        // 空闲线程存活时间TimeUnit.MINUTES,         // 存活时间的单位new LinkedBlockingQueue<Runnable>(6)  // 任务队列);// 提交第一个永不释放的任务给线程池threadPoolExecutor.execute(() -> {try {System.out.println("Task 1 is running and will never complete");while (true) {// 模拟一个永不释放的任务Thread.sleep(1000);}} catch (InterruptedException e) {System.out.println("Task 1 was interrupted");Thread.currentThread().interrupt();}});// 等待一段时间然后提交第二个任务try {System.out.println("等待2秒");Thread.sleep(2000); // 等待2秒,确保第一个任务已开始执行} catch (InterruptedException e) {e.printStackTrace();}for (int i = 0; i < 6; i++) {   //模拟任务数量int finalI = i;threadPoolExecutor.execute(() -> {try {System.out.println("Task "+ finalI +"is running");Thread.sleep(1000); // 模拟任务运行System.out.println("Task "+ finalI +"is completed");} catch (InterruptedException e) {e.printStackTrace();}});}// 打印线程池状态new Thread(() -> {while (true) {try {System.out.println("Active Threads: " + threadPoolExecutor.getActiveCount());System.out.println("Pool Size: " + threadPoolExecutor.getPoolSize());System.out.println("Queue Size: " + threadPoolExecutor.getQueue().size());Thread.sleep(5000); // 每5秒打印一次线程池状态} catch (InterruptedException e) {Thread.currentThread().interrupt();break;}}}).start();// 等待足够的时间观察线程池状态//try {//    Thread.sleep(60000); // 主线程等待60秒//} catch (InterruptedException e) {//    e.printStackTrace();//}// 关闭线程池//threadPoolExecutor.shutdownNow();//try {//    // 等待所有任务完成//    if (!threadPoolExecutor.awaitTermination(60, TimeUnit.SECONDS)) {//        threadPoolExecutor.shutdownNow();//    }//} catch (InterruptedException e) {//    threadPoolExecutor.shutdownNow();//}}
}

在这里插入图片描述

2.场景二

如果核心线程数,一直被占用.来了6个任务.效果会怎么样

答: 这是任务总数超过了队列的长度.线程池会创建新的线程来处理这个任务.根据队列的不同.消费任务的顺序不一样.以LinkedBlockingQueue.1,2,3,4,5添加到队列中.第6个任务来了.会创建线程先消费. 然后再又这个线程来处理1,2,3,4,5来处理.

然后处理完.空闲线程等待存活时间.然后被回收.线程池恢复到最开始的时候.

在这里插入图片描述
在这里插入图片描述

3.场景三

如果核心线程数和最大线程数的其他线程同时空置了,最大线程数的其他线程还没有被回收.现在队列中的任务,会被那个消费

答: 会优先被核心线程先消费

相关文章:

线程池的一些问题

核心线程数1.最大线程5.队列5.存活时间10s 1.场景一 如果核心线程数.被一直占用得不到释放.新进来1个任务.会怎么样?答: 会在队列中中死等. 只要进来的任务.不超过队列的长度,就会一直挡在队列中死等 package com.lin;import java.util.concurrent.Executors; import java.u…...

企业或者个体户为什么会经营异常?

在复杂多变的市场经济环境中&#xff0c;无论是企业还是个体工商户&#xff0c;都可能遭遇经营异常的情况。及时识别这些预警信号并采取有效措施&#xff0c;对于避免潜在风险、保持健康发展至关重要。本文将深入探讨企业与个体户常见的经营异常类型、识别方法以及应对策略&…...

ROS从入门到精通4-3:制作Docker镜像文件Dockerfile

目录 0 专栏介绍1 为什么需要Dockerfile&#xff1f;2 Dockerfile书写原则3 Dockerfile常用指令3.1 FROM3.2 MAINTAINER3.3 RUN3.4 ADD3.5 COPY3.6 CMD3.7 ENV3.8 EXPOSE3.9 WORKDIR3.10 ARG 4 Dockerfile构建ROS工程实例 0 专栏介绍 本专栏旨在通过对ROS的系统学习&#xff0…...

【CV】计算机视觉是什么?

计算机视觉是一门研究如何使机器“看”的学科&#xff0c;旨在实现从图像或视频中获取信息的技术和方法。它涵盖了图像处理、模式识别、机器学习等多个领域&#xff0c;是人工智能领域的重要分支之一。以下是计算机视觉的一般概要介绍&#xff1a; 概要介绍&#xff1a; 图像…...

如何在Vue中实现鼠标悬浮展示与隐藏弹窗的功能

如果你需要鼠标在元素和弹窗上时保持弹窗显示&#xff0c;而鼠标离开这两者时隐藏弹窗&#xff0c;你可以使用一个稍微复杂的逻辑来处理鼠标的进入和离开事件。 这通常涉及到延时关闭弹窗&#xff0c;以便给用户足够的时间从元素移动到弹窗上&#xff0c;而不触发弹窗关闭。以…...

03 Linux编程-进程

1、进程的相关概念 1.1 程序与进程 程序是静态的概念&#xff0c;进程是程序的一次运行活动。 1.2 查看系统中有哪些进程 ps #只显示一小部分进程 ps -aux #会打印当前所有进程 ps -aux|grep init #使用grep筛选出只含有init的进程top #运行显示的进程有点类似windows…...

Hbuild-X运行ios基座app

一、说明 ios真机第一次运行的时候需要下载插件&#xff0c;这个都是自动监测&#xff0c;自动下载的&#xff0c;不用多说。ios真机运行是需要签名的&#xff0c;不然就会报以下错误。如何制作免费的签名证书呢&#xff0c;需要借助爱思助手来完成。 二、安装爱思助手 &…...

Node.js基础:从入门到实战

初识 Node.js 与内置模块 &#xff08;初识&#xff09; 1、知道什么是node.js 2、知道node.js可以做什么 3、node.js 中js的组成部分 &#xff08;内置模块&#xff09; 4、用 fs 模块读写操作文件 5、使用 path 模块处理路径 6、使用http 模块写一个基本的web服务器 初识 N…...

考研408笔记总结~

目录 一.数据结构 二.计算机组成原理 三.操作系统 四.计算机网络 私以为边看视频&#xff0c;边做笔记会更专注些&#xff0c;大家需要自取。欢迎大家和我一起探讨考研的问题&#xff0c;包括不仅限于专业课&#xff0c;数学&#xff0c;英语等等......&#xff0c;想说什么…...

使用在线工具等方式下载推特视频

使用在线工具等方式下载推特视频 使用在线工具 Visit a Twitter video downloader website: Websites like twdown.net, twittervideodownloader.com, and savevideo.me offer services to download Twitter videos.Paste the Twitter video URL into the designated input bo…...

性能优化:几方面考虑

我们可以继续再考虑下关于性能优化&#xff0c;我们还能从哪些方面着手呢&#xff1f; 1. 代码层面&#xff1a; 使用更高效的数据结构和算法。使用缓存避免多次数据库交互减少不必要的计算和内存分配。利用并行和异步编程提高性能。使用性能分析工具定位和优化瓶颈。 2. We…...

学习大数据:论学习Spark的重要性

随着科技的不断发展&#xff0c;大数据已经成为了当今社会的热门话题。大数据技术的出现&#xff0c;为我们提供了处理海量数据的新方法&#xff0c;使得我们能够从这些数据中挖掘出有价值的信息。在众多的大数据处理框架中&#xff0c;Apache Spark无疑是最为出色的一种。本文…...

学习java第七十一天

DI&#xff1a;依赖注入 依赖注入是spring容器中创建对象时给其设置依赖对象的方式&#xff0c;比如给spring一个清单&#xff0c;清单中列出了需要创建B对象以及其他的一些对象&#xff08;可能包含了B类型中需要依赖对象&#xff09;&#xff0c;此时spring在创建B对象的时候…...

Altium Designer PCB快捷键设置

6&#xff09;PCB修改快捷键&#xff0c;并自定义工具栏 添加boardlayerset系统命令。 修改系统脚本&#xff0c; 在D:\Program Files\Altium\AD18\System下&#xff0c;找到advpcb.rcs文件&#xff0c;打开。 Tree MNPCB_LayerSets CaptionManage Layer Se&ts Popup Emp…...

玩转Matlab-Simscape(初级)- 08 - 基于Solidworks、Matlab Simulink、COMSOL的协同仿真(案例实战)

** 玩转Matlab-Simscape&#xff08;初级&#xff09;- 08 - 基于Solidworks、Matlab Simulink、COMSOL的协同仿真&#xff08;案例实战&#xff09; ** 目录 玩转Matlab-Simscape&#xff08;初级&#xff09;- 08 - 基于Solidworks、Matlab Simulink、COMSOL的协同仿真&…...

vue嵌套路由

一、嵌套 children配置 1.父类路由 mymusic 2.子类路由 musicson 1.创建MusicSon组件 <template><div><p>从前和后来</p><p>唯一</p><p>运气来的似有若无</p></div> </template><script>export defaul…...

视频降噪算法 hqdn3d 原理分析

视频降噪 视频降噪是一种处理技术&#xff0c;旨在减少视频中的噪声&#xff0c;提高画面质量。噪声可能来自多种源头&#xff0c;包括摄像机的传感器、压缩算法、传输过程中的干扰等。降噪处理对于视频监控、视频会议、电影后期制作以及任何需要高画质输出的应用场景都非常重…...

Ansys Mechanical|屈曲分析技术

屈曲分析的基本概念 当受拉杆件的应力达到屈服极限或强度极限时&#xff0c;将引起塑性变形或断裂。这些是由于强度不足所引起的失效。 在工程中&#xff0c;我们会注意到当细长杆件受压时&#xff0c;表现出与强度失效完全不同的性质。当杆件受压超过某一临界值时&#xff0…...

【大模型微调】一文掌握7种大模型微调的方法

本篇文章深入分析了大型模型微调的基本理念和多样化技术&#xff0c;细致介绍了LoRA、适配器调整(Adapter Tuning)、前缀调整(Prefix Tuning)等多个微调方法。详细讨论了每一种策略的基本原则、主要优点以及适宜应用场景&#xff0c;使得读者可以依据特定的应用要求和计算资源限…...

MySQL表突然卡死,删、查操作加载不停解决办法

今天遇到了MySQL删表的时候卡死情况。然后通过网上查阅资料和项目组沟通&#xff0c;了解到了有多人同时对同一张表进行了操作。我和另一个同事同时进行了删除操作&#xff0c;然后另两位同时进行了查询操作&#xff0c;然后还有一位同事用dolphin调度&#xff0c;用datax采集数…...

线程化笔记工具:重塑深度思考与知识管理的技术实践

1. 项目概述&#xff1a;一个为线程化思考而生的笔记工具最近在折腾个人知识管理工具时&#xff0c;发现了一个挺有意思的开源项目&#xff1a;alishobeiri/thread-notebook。乍一看名字&#xff0c;可能会以为是又一个普通的Markdown笔记本应用。但深入使用后&#xff0c;我发…...

自主智能体框架构建指南:从LLM工具调用到多任务规划系统

1. 项目概述&#xff1a;一个能“开疆拓土”的智能体框架最近在开源社区里&#xff0c;一个名为njbrake/agent-of-empires的项目引起了我的注意。光看这个名字&#xff0c;就充满了野心和想象力——“帝国的代理人”。这可不是一个简单的脚本工具&#xff0c;而是一个旨在构建能…...

多智能体涌现环境:从局部交互到群体智能的深度解析与实践

1. 项目概述&#xff1a;多智能体涌现环境的深度探索最近在复现和深入研究一个名为“multi-agent-emergence-environments”的开源项目&#xff0c;它来自OpenAI。这个项目名听起来有点学术&#xff0c;但它的核心思想非常迷人&#xff1a;在一个模拟的物理沙盒环境中&#xff…...

量化部署终极指南:从GPTQ到AWQ,精度损失与显存节省的平衡艺术

系列导读 你现在看到的是《本地大模型私有化部署与优化:从入门到生产级实战》的第 7/10 篇,当前这篇会重点解决:帮你搞懂每种量化方法的优劣,用最少显存跑最大模型,精度损失可控。 上一篇回顾:第 6 篇《RAG知识库实战:LangChain+Chroma搭建本地问答系统,解决幻觉与知…...

低配置电脑适配 OpenClaw 搭配 Ollama 流畅使用技巧

前置准备 获取小龙虾open claw一键安装包&#xff08;www.totom.top&#xff09;并安装电脑已成功安装运行 OpenClaw 客户端&#xff0c;顶部 Gateway 状态保持在线网络正常&#xff0c;可顺利访问 Ollama 官方网站电脑空余磁盘空间充足&#xff0c;本地 AI 模型占用体积较大提…...

动态目标跨镜无缝接力追踪技术白皮书

一、前言在全域视觉监控、智能安防、智慧园区、交通管控、工业巡检等核心场景中&#xff0c;动态目标&#xff08;人员、车辆、设备等&#xff09;的跨摄像头连续追踪是实现智能化管理的核心需求。当前行业常规追踪方案普遍存在轨迹断点、坐标漂移、身份错乱等痛点&#xff0c;…...

Agent 的记忆也会被投毒:长期记忆安全的六阶段框架

过去&#xff0c;我们更习惯把大模型的风险理解为“这一轮输入有没有问题”“这一轮输出会不会越界”。但有了长期记忆之后&#xff0c;风险结构发生了变化。恶意内容不一定在当场触发&#xff0c;也不一定在同一轮任务里显现出来。它可以先悄悄进入记忆&#xff0c;在几天后、…...

AI应用开发实战:从RAG系统到多模型API调用的开源项目解析

1. 项目概述&#xff1a;一个AI项目的开源实践最近在GitHub上看到一个名为“hferello/ai”的项目&#xff0c;这个标题非常简洁&#xff0c;甚至可以说有些“神秘”。乍一看&#xff0c;它可能是一个关于人工智能的通用仓库&#xff0c;但点进去之后&#xff0c;你会发现它远不…...

3分钟快速上手:m4s-converter让B站缓存视频秒变MP4格式

3分钟快速上手&#xff1a;m4s-converter让B站缓存视频秒变MP4格式 【免费下载链接】m4s-converter 一个跨平台小工具&#xff0c;将bilibili缓存的m4s格式音视频文件合并成mp4 项目地址: https://gitcode.com/gh_mirrors/m4/m4s-converter 在当今数字内容时代&#xff…...

3分钟掌握FanControl:Windows风扇控制终极指南

3分钟掌握FanControl&#xff1a;Windows风扇控制终极指南 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://gitcode.com/GitHub_Trending/fa/FanCon…...