62-java线程池的执行过程

news/2024/9/19 11:06:31/ 标签: java, 开发语言

Java线程池的执行过程主要包括以下几个步骤:

  1. 创建线程池:使用ThreadPoolExecutor类创建线程池,并设置核心线程数、最大线程数、队列容量、保持存活时间等参数

  2. 提交任务:将任务(通常实现RunnableCallable接口)提交给线程池。

  3. 判断核心线程是否已满:如果当前运行的线程数量小于核心线程数,则创建一个新线程来执行任务。

  4. 任务队列:如果核心线程数已满,但线程池未达到最大线程数,则任务会被放入任务队列中等待执行。

  5. 创建非核心线程:如果队列已满,则创建新的线程执行任务(最大线程数),如果再创建新线程数已达到限制,则执行拒绝策略。

以下是一个创建线程池并提交任务的简单示例代码:

import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.ThreadPoolExecutor;public class ThreadPoolExample {public static void main(String[] args) {// 创建固定大小的线程池ExecutorService executorService = Executors.newFixedThreadPool(5);// 提交任务for (int i = 0; i < 10; i++) {Runnable task = () -> System.out.println("Executing task " + Thread.currentThread().getName());executorService.execute(task);}// 关闭线程池executorService.shutdown();}
}

在这个例子中,我们创建了一个固定大小的线程池,能够同时执行最多5个任务。然后我们提交了10个简单的任务,线程池会根据它的执行过程来处理这些任务。最后,当所有任务完成后,我们调用shutdown()来关闭线程池。


http://www.ppmy.cn/news/1520664.html

相关文章

黑神话:悟空-配置推荐

显卡推荐&#xff08;按类别整理&#xff09; 1. GTX 10系列、GTX 16系列&#xff1a; 如果希望体验光线追踪&#xff0c;建议根据预算升级到RTX 40系列显卡。对于1080p分辨率&#xff0c;至少需要RTX 4060才能流畅运行。 2. RTX 20系列&#xff1a; RTX 2060、RTX 2070&#…

基于Transformer架构训练LLM大语言模型:Transformer架构工作原理

视频讲解&#xff1a;Transformer架构的工作原理讲解_哔哩哔哩_bilibili 一 Transformer架构总体架构 1 总体架构图 总体架构说明&#xff1a; 输入层 词嵌入&#xff08;Word Embeddings&#xff09;: 输入文本中的每个词都被映射到一个高维空间中的向量&#xff0c;这些向…

最新Python安装+PyCharm安装激活和使用教程(pycharm激活)

PyCharm激活 激活码&#xff1a; EUWT4EE9X2-eyJsaWNlbnNlSWQiOiJFVVdUNEVFOVgyIiwibGljZW5zZWVOYW1lIjoic2lnbnVwIHNjb290ZXIiLCJhc3NpZ25lZU5hbWUiOiIiLCJhc3NpZ25lZUVtYWlsIjoiIiwibGljZW5zZVJlc3RyaWN0aW9uIjoiIiwiY2hlY2tDb25jdXJyZW50VXNlIjpmYWxzZSwicHJvZHVjdHMiOlt7…

【mac】brew 更新

【mac】brew 更新 更新 Homebrew 要获取最新的包的列表&#xff0c;首先得更新 Homebrew 自己。这可以用 brew update 办到。 brew update完后会显示可以更新的包列表&#xff0c;其中打钩的是已经安装的包。输出类似下面这样&#xff1a; > Updating Homebrew... Updat…

【STM32+HAL库】---- 通用定时器PWM输出实现呼吸灯

硬件开发板&#xff1a;STM32G0B1RET6 软件平台&#xff1a;cubemaxkeilVScode1 新建cubemax工程 1.1 配置系统时钟RCC 1.2 配置定时器 找到LED所对应的引脚PA5&#xff0c;选择TIM2_CH1模式 在TIM2中&#xff0c;时钟源选择内部时钟Internal Clock&#xff0c;通道1选择PWM…

内置消息支持

内置消息支持 MATLAB 支持大量的 ROS 消息类型。本主题介绍了 MATLAB 如何通过描述消息结构、ROS 消息的限制以及支持的 ROS 数据类型来处理 ROS 消息。有关内置消息类型的完整列表&#xff0c;请参见本文末尾。 有关 ROS 2 消息的信息&#xff0c;请参见“使用基础 ROS 2 消…

uniapp布局

一. 如何让元素吸顶? position: sticky;top: 0; 注意&#xff1a;暂时仅支持作为list-view、sticky-section的子节点, sticky-header不支持css样式&#xff01;当一个容器视图设置多个sticky-header时&#xff0c;后一个sticky-header会停靠在前一个sticky-header的末尾处。

chrome 插件开发入门

1. 介绍 Chrome 插件可用于在谷歌浏览器上控制当前页面的一些操作&#xff0c;可自主控制网页&#xff0c;提升效率。 平常我们可在谷歌应用商店中下载谷歌插件来增强浏览器功能&#xff0c;作为开发者&#xff0c;我们也可以自己开发一个浏览器插件来配合我们的日常学习工作…

2-78 基于matlab-GUI的DTW算法语音识别

基于matlab-GUI的DTW算法语音识别&#xff0c;具有16页分析报告。能识别0-9数字&#xff0c;正确率90。预处理过程包括预滤波、采样和量化、分帧、加窗、预加重、端点检测等。经过预处理的语音数据进行特征参数提取。在训练阶段&#xff0c;将特征参数处理之后&#xff0c;每个…

算法题汇总

算法汇总 环形链表 https://leetcode.cn/problems/linked-list-cycle/ 反转链表 https://leetcode.cn/problems/reverse-linked-list/28 环形链表 II https://leetcode.cn/problems/linked-list-cycle-ii/ 快乐数 https://leetcode.cn/problems/happy-number/ 反转链表 II …

掌握SQL的“删除艺术”:如何使用DROP TABLE命令

掌握SQL的“删除艺术”&#xff1a;如何使用DROP TABLE命令 在数据库管理中&#xff0c;有时候我们需要彻底删除一个表&#xff0c;这可能是为了重新设计数据库结构&#xff0c;或者因为某些表不再需要。SQL 提供了 DROP TABLE 语句来实现这一功能。本文将详细介绍 DROP TABLE…

react 中three.js 模型渲染

npm install three import * as THREE from "three"; import { GLTFLoader } from "three/examples/jsm/loaders/GLTFLoader.js"; const mountRef useRef(null); useEffect(() > {// 创建渲染器 const renderer new THREE.WebGLRenderer(); const wi…

“解决MySQL容器启动后无法编辑文件的问题:实用指南“

前段时间拉取了个MySQL的容器节点&#xff0c;但是拉起之后发现居然编辑不了MySQL的配置文件&#xff0c;这是我的启动命令 docker run -itd -p 3310:3306 -e MYSQL_ROOT_PASSWORD12345678 --name slave2 f5f171121fa3 bash 下面总结下解决方法&#xff1a; 编辑docker file…

MES基于C#开发计划管理组件集成WinCC中使用

MES系统通常都会与SCADA系统集成使用&#xff0c;尤其具备中控管理需求的工厂&#xff0c;集控SCADA需要集成MES系统的计划工单数据实现工单数据、工艺配方数据、SN数据、打码数据等下发&#xff0c;执行状态、关键参数反馈等上传。本文介绍在WinCC画面集成基于C#开发的计划管理…

[论文笔记] LLM模型剪枝

Attention Is All You Need But You Don’t Need All Of It For Inference of Large Language Models LLaMA2在剪枝时,跳过ffn和跳过full layer的效果差不多。相比跳过ffn/full layer,跳过attention layer的影响会更小。 跳过attention layer:7B/13B从100%参…

iOS 收集打印日志

可以将要在Xcode 控制台打印的日志写在沙盒&#xff0c;最后导出分享&#xff0c;进行问题分析。 正式版本不建议使用&#xff0c;避免增加用户内存。配合解决顽固 Bug 可以通过该方法收集打印日志 .h头文件 interface LogManager : NSObject(FSLogManager *)shareInstance; -…

冲刺蓝桥杯第三章字符串

ASCII码值、字母大小写转换、‘0’~‘9’ //数字转字符:A(65)a(97)0(48) char A=char(65); char a=char(97); char c

终极解决 docker 拉取镜像失败的问题,其他类似场景也适用

国内的网络环境&#xff0c;想必大家都是知道的&#xff0c;虽说技术无罪&#xff0c;但奈何政策不允许啊&#xff0c;以下内容我在 CSDN 上发不了&#xff0c;请大家移步我的个人公 * 号&#xff1a;新质程序猿&#xff0c;查看更多原创内容&#xff0c;这里只介绍相关背景和需…

字节6面,面爆炸了

字节跳动 昨晚在牛客网刷到一篇"深夜 EMO 贴"&#xff0c;又是讲字节 N 面挂的。 原本的 4HR 面都过了&#xff0c;结果 Offer 审批的时候&#xff0c;被 HR 通知加一轮交叉面&#xff0c;一共 6 面。 加面时&#xff0c;两个面试官全程黑脸&#xff0c;最后两道算法…

软考 -- 软件设计师 -- 二轮复习(2) -- 程序设计语言(持续更新)

软考 – 软件设计师 – 二轮复习(2) – 程序设计语言(持续更新) 文章目录 软考 -- 软件设计师 -- 二轮复习(2) -- 程序设计语言(持续更新)前言一、编译、解释、基本控制结构二、数据类型三、变量和常量、逻辑表达式(短路&#xff1a;&&、||、&#xff01;)四、传值调用…