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

【零基础到精通Java合集】第十八集:多线程与并发编程-线程池与Callable/Future应用


课程标题:线程池与Callable/Future应用(15分钟)

目标:掌握线程池的创建与管理,理解Callable任务与Future异步结果处理机制


0-1分钟:课程引入与线程池意义

以“银行窗口服务”类比线程池:复用固定资源(柜员)处理多任务(客户)。说明线程池的核心价值——避免频繁创建/销毁线程的开销,控制并发规模


1-2分钟:线程池的创建方式

演示通过Executors工具类快速创建线程池:

ExecutorService fixedPool = Executors.newFixedThreadPool(4);  // 固定线程数  
ExecutorService cachedPool = Executors.newCachedThreadPool(); // 弹性扩容  
ScheduledExecutorService scheduledPool = Executors.newScheduledThreadPool(2); // 定时任务  

2-4分钟:ThreadPoolExecutor核心参数

手动配置线程池(更灵活):

ThreadPoolExecutor customPool = new ThreadPoolExecutor(  2,  // 核心线程数  10, // 最大线程数  60, TimeUnit.SECONDS, // 空闲线程存活时间  new LinkedBlockingQueue<>(100) // 任务队列  
);  

拒绝策略:当队列满且线程数达上限时,可定义AbortPolicy(抛异常)或CallerRunsPolicy(调用方线程执行任务)。


4-5分钟:Callable与Runnable的对比
  • Runnable:无返回值,不抛异常
    Runnable task = () -> System.out.println("执行任务");  
    
  • Callable:有返回值,支持异常
    Callable<Integer> task 

相关文章:

【零基础到精通Java合集】第十八集:多线程与并发编程-线程池与Callable/Future应用

课程标题:线程池与Callable/Future应用(15分钟) 目标:掌握线程池的创建与管理,理解Callable任务与Future异步结果处理机制 0-1分钟:课程引入与线程池意义 以“银行窗口服务”类比线程池:复用固定资源(柜员)处理多任务(客户)。说明线程池的核心价值——避免频繁创建…...

windows下安装Open Web UI

windows下安装openwebui有三种方式,docker,pythonnode.js,整合包. 这里我选择的是第二种,非docker. 非Docker方式安装 1. 安装Python&#xff1a; 下载并安装Python 3.11&#xff0c;建议安装路径中不要包含中文字符&#xff0c;并勾选“Add python 3.11 to Path”选项。 安…...

【自用】NLP算法面经(4)

一、deepseek 1、MLA &#xff08;1&#xff09;LLM推理过程 prefill阶段&#xff1a;模型对全部的prompt tokens一次性并行计算&#xff0c;最终生成第一个输出token。decode阶段&#xff1a;每次生成一个token&#xff0c;直到生成EOS&#xff08;end-of-sequence&#xf…...

LeetCode热题100JS(20/100)第四天|​41. 缺失的第一个正数​|​73. 矩阵置零​|​54. 螺旋矩阵​|​48. 旋转图像​

41. 缺失的第一个正数 题目链接&#xff1a;41. 缺失的第一个正数 难度&#xff1a;困难 刷题状态&#xff1a;1刷 新知识&#xff1a; 解题过程 思考 示例 1&#xff1a; 输入&#xff1a;nums [1,2,0] 输出&#xff1a;3 解释&#xff1a;范围 [1,2] 中的数字都在数组中…...

【银河麒麟高级服务器操作系统实际案例分享】数据库资源重启现象分析及处理全过程

更多银河麒麟操作系统产品及技术讨论&#xff0c;欢迎加入银河麒麟操作系统官方论坛 https://forum.kylinos.cn 了解更多银河麒麟操作系统全新产品&#xff0c;请点击访问 麒麟软件产品专区&#xff1a;https://product.kylinos.cn 开发者专区&#xff1a;https://developer…...

开源架构与人工智能的融合:开启技术新纪元

最近五篇文章推荐&#xff1a; 开源架构的自动化测试策略优化版&#xff08;New&#xff09; 开源架构的容器化部署优化版&#xff08;New&#xff09; 开源架构的微服务架构实践优化版&#xff08;New&#xff09; 开源架构中的数据库选择优化版&#xff08;New&#xff09; 开…...

缓存那些事儿

为什么要使用缓存 性能 我们在碰到需要执行耗时特别久&#xff0c;且结果不频繁变动的SQL&#xff0c;就特别适合将运行结果放入缓存。这样&#xff0c;后面的请求就去缓存中读取&#xff0c;使得请求能够迅速响应。 并发 在大并发的情况下&#xff0c;所有的请求直接访问数…...

【弹性计算】弹性裸金属服务器和神龙虚拟化(二):适用场景

《弹性裸金属服务器》系列&#xff0c;共包含以下文章&#xff1a; 弹性裸金属服务器和神龙虚拟化&#xff08;一&#xff09;&#xff1a;功能特点弹性裸金属服务器和神龙虚拟化&#xff08;二&#xff09;&#xff1a;适用场景弹性裸金属服务器和神龙虚拟化&#xff08;三&a…...

通往 AI 之路:Python 机器学习入门-语法基础

第一章 Python 语法基础 Python 是一种简单易学的编程语言&#xff0c;广泛用于数据分析、机器学习和人工智能领域。在学习机器学习之前&#xff0c;我们需要先掌握 Python 的基本语法。本章将介绍 Python 的变量与数据类型、条件语句、循环、函数以及文件操作&#xff0c;帮助…...

FastGPT 引申:信息抽取到知识图谱的衔接流程

文章目录 信息抽取到知识图谱的衔接流程步骤1&#xff1a;原始信息抽取结果步骤2&#xff1a;数据标准化处理&#xff08;Python示例&#xff09;步骤3&#xff1a;Cypher代码动态生成&#xff08;Python驱动&#xff09; 关键衔接逻辑说明1. 唯一标识符生成规则2. 数据映射策略…...

计算机毕业设计SpringBoot+Vue.js保险合同管理系统(源码+文档+PPT+讲解)

温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 作者简介&#xff1a;Java领…...

58、深度学习-自学之路-自己搭建深度学习框架-19、RNN神经网络梯度消失和爆炸的原因(从公式推导方向来说明),通过RNN的前向传播和反向传播公式来理解。

一、RNN神经网络的前向传播图如下&#xff1a; 时间步 t1: x₁ → (W_x) → [RNN Cell] → h₁ → (W_y) → y₁ ↑ (W_h) h₀ (初始隐藏状态) 时间步 t2: x₂ → (W_x) → [RNN Cell] → h₂ → (W_y) → y₂ ↑ (W_h) h₁ 时间…...

什么是 Cholesky 分解?兼谈正定矩阵和二次型

Cholesky 分解在深度学习中的应用与理解 Cholesky 分解是一种用于对称正定矩阵的特殊分解方法&#xff0c;在线性代数和概率模型中有广泛应用。对于深度学习研究者来说&#xff0c;理解 Cholesky 分解不仅有助于掌握矩阵运算的理论基础&#xff0c;还能在高斯过程、变分方法&a…...

在单位,领导不说,但自己得懂的7个道理

如果你感到很难继续适应旧模式、旧关系、旧想法&#xff0c;开始厌倦生活&#xff0c;你很可能到了该蜕皮的时候。把“不是自己”的那部分舍弃掉&#xff0c;你就能看见“自己是谁”了。 ——奥赞瓦罗尔&#xff0c;《读者》2024年第11期 前几天听部门里一个新来的小姑娘抱怨&a…...

bge-large-zh-v1.5 与Pro/BAAI/bge-m3 区别

ge-large-zh-v1.5 和 Pro/BAAI/bge-m3 是两种不同的模型&#xff0c;主要区别在于架构、性能和应用场景。以下是它们的对比&#xff1a; 1. 模型架构 bge-large-zh-v1.5&#xff1a; 基于Transformer架构&#xff0c;专注于中文文本的嵌入表示。 参数量较大&#xff0c;适合处…...

lamp平台介绍

一、lamp介绍 网站&#xff1a; 静态 动态 php语言 .php 作用&#xff1a;运行php语言编写动态网站应用 lamp Linux Apache MySQL PHP PHP是作为httpd的一个功能模块存在的 二、部署lamp平台 1、测试httpd是否可正常返回PHP的响应 2、测试PHP代码是否可正常连接数据…...

Windows10系统构建本地安全私有化的个人知识库——采用DeepSeek+RAGFlow

一、为什么要构建本地私有化个人知识库 1.1、自身需求 1、需要相关隐私资料内容的安全保护可控; 2、需要根据自身的隐私资料内容构建出个性化的知识库; 一些常见的业务场景如:①希望我们的智能助手可以根据公司的管理制度回答问题,让员工可以随时了解公司相关制度内容信息;…...

Linux: Centos7 Cannot find a valid baseurl for repo: base/7/x86_64 解决方案

Linux: Centos7 Cannot find a valid baseurl for repo: base/7/x86_64 解决方案 问题背景&#xff1a; 执行yum update出现如下报错 排查虚拟机是否联网&#xff1a; ping -c 4 www.baidu.com 可以看到网络链接没有问题 解决方案&#xff1a; 原因是国外的镜像源有问题&am…...

Java 大视界 -- Java 大数据在智能金融反欺诈中的技术实现与案例分析(114)

&#x1f496;亲爱的朋友们&#xff0c;热烈欢迎来到 青云交的博客&#xff01;能与诸位在此相逢&#xff0c;我倍感荣幸。在这飞速更迭的时代&#xff0c;我们都渴望一方心灵净土&#xff0c;而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识&#xff0c;也…...

每日OJ_牛客_游游的字母串_枚举_C++_Java

目录 牛客_游游的字母串_枚举 题目解析 C代码 Java代码 牛客_游游的字母串_枚举 游游的字母串 描述&#xff1a; 对于一个小写字母而言&#xff0c;游游可以通过一次操作把这个字母变成相邻的字母。a和b相邻&#xff0c;b和c相邻&#xff0c;以此类推。特殊的&#xff0…...

AI会带给我们一个什么样的未来

AI到来的时代&#xff0c;很多人还没有意识到这一点&#xff0c;就是AI在新的时代不仅改变了游戏规则&#xff0c;还创造了一个全新的游戏规则。我们谁也不清楚接下来会发生什么&#xff1f; AI是否能够像人类一样看、听和说话&#xff0c;或者AI将永远改变企业的运作方式&…...

示例:在WPF中如何使用Segoe MDL2 Assets图标和使用该图标的好处

一、目的&#xff1a;分享在WPF中如何使用Segoe MDL2 Assets图标和使用该图标的好处 在WPF中使用Segoe MDL2 Assets字体&#xff0c;可以通过设置控件的FontFamily属性来实现。Segoe MDL2 Assets是一个包含许多图标的字体&#xff0c;通常用于Windows应用程序的图标显示。 二、…...

h5 IOS端渐变的兼容问题 渐变实现弧形效果

IOS端使用渐变的时候有兼容问题 以下是问题效果&#xff0c;图中黑色部分期望的效果应该是白色的。但是ios端是下面的样子…… 安卓pc 支持&#xff1a; background-image: radial-gradient(circle 40rpx at 100% 0, #f3630c 40rpx, rgb(255, 255, 255) 50%);安卓pc ios支持…...

Linux搜索---find

find搜索 find 命令的核心功能是在指定的目录路径下&#xff0c;递归地搜索文件和目录&#xff0c;并且可以根据多种条件对搜索结果进行筛选&#xff0c;还能对符合条件的文件和目录执行特定操作。 一、基础语法结构 find [起始目录] [匹配条件] [执行操作] # 基本示例 find…...

Libgdx游戏开发系列教程(4)——显示中文文字

目录 2种方法优缺点 BitmapFont FreeTypeFont 方法1 使用BitmapFont 1.下载hiero工具 2.生成fnt文件 3.代码使用 测试效果 方法2 使用FreeType 1.依赖引入 2.代码使用 测试效果 使用疑问点 这里主要介绍关于在Libgdx显示文字的2种方法 本文代码示例采用kotl…...

自然语言处理:朴素贝叶斯

介绍 大家好&#xff0c;博主又来和大家分享自然语言处理领域的知识了。按照博主的分享规划&#xff0c;本次分享的核心主题本应是自然语言处理中的文本分类。然而&#xff0c;在对分享内容进行细致梳理时&#xff0c;我察觉到其中包含几个至关重要的知识点&#xff0c;即朴素…...

题目 3216 ⭐团建⭐【DFS】蓝桥杯2024年第十五届省赛

小蓝正在和朋友们团建&#xff0c;有一个游戏项目需要两人合作&#xff0c;两个人分别拿到一棵大小为 n 和 m 的树&#xff0c;树上的每个结点上有一个正整数权值 c 1 , c 2 , ⋅ ⋅ ⋅ , c n c_1, c_2, , c_n c1​,c2​,⋅⋅⋅,cn​, d 1 , d 2 , ⋅ ⋅ ⋅ , d m d_1, d_…...

UltraScale系列FPGA实现SDI转PCIE3.0采集卡,基于UltraScale GTH+XDMA架构,提供工程源码和技术支持

目录 1、前言工程概述免责声明 2、相关方案推荐我已有的所有工程源码总目录----方便你快速找到自己喜欢的项目本博已有的 SDI 编解码方案我已有的PCIE方案本博客方案的PCIE2.0版本本博客方案的RIFFA版本 3、详细设计方案设计原理框图SDI 输入设备LMH1219RTWR 均衡器UltraScale …...

Linux系列:如何调试 malloc 的底层源码

一&#xff1a;背景 1. 讲故事 上一篇我们聊过 C# 调用 C 的 malloc 代码来演示heap的内存泄露问题&#xff0c;但要想深入研究得必须把 malloc 的实现库 libc.so 给调试起来&#xff0c;大家都知道在Linux 上 libc 和 Windows 的 Win32 API 是一个层级的&#xff0c;由于 Li…...

深入 PipeWire

简介 随着它的成熟&#xff0c;PipeWire 项目正在慢慢地变得流行。它的文档依然相对稀少&#xff0c;但正在逐渐增长。然而&#xff0c;让项目外部的人尝试用他们自己的语言来理解和解释它总是一个好主意&#xff0c;重申想法&#xff0c;从他们自己的角度来看待它。 在之前的…...