ThreadPoolExecutor扩展


import java.util.concurrent.*;

/**
 * ThreadPoolExecutor扩展
 */
public class ExtThreadPool {
    public static class MyTask implements Runnable{
        public String name;

        public MyTask(String name) {
            this.name = name;
        }

        @Override
        public void run() {
            System.out.println("正在执行 Id:"+Thread.currentThread().getId()+",Name:"+Thread.currentThread().getName());
            try {
                Thread.sleep(100);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
    public static void main(String[] args) throws InterruptedException{
        ExecutorService executor = new ThreadPoolExecutor(5, 5, 0L,
                TimeUnit.MILLISECONDS, new LinkedBlockingQueue<>()){
            @Override
            protected void beforeExecute(Thread t, Runnable r) {
               System.out.println("准备执行:"+((MyTask)r).name);
            }

            @Override
            protected void afterExecute(Runnable r, Throwable t) {
                System.out.println("执行完成:"+((MyTask)r).name);
            }

            @Override
            protected void terminated() {
                System.out.println("线程池退出");
            }
        };
        for (int i = 0; i < 5; i++) {
            MyTask task = new MyTask("TASK-"+i);
            executor.execute(task);
            Thread.sleep(10);
        }
        executor.shutdown();//关闭线程池,它会等待所有任务执行完成后,再关闭线程池
    }
    //准备执行:TASK-0
    //正在执行 Id:9,Name:pool-1-thread-1
    //准备执行:TASK-1
    //正在执行 Id:10,Name:pool-1-thread-2
    //准备执行:TASK-2
    //正在执行 Id:11,Name:pool-1-thread-3
    //准备执行:TASK-3
    //正在执行 Id:12,Name:pool-1-thread-4
    //准备执行:TASK-4
    //正在执行 Id:13,Name:pool-1-thread-5
    //执行完成:TASK-0
    //执行完成:TASK-1
    //执行完成:TASK-2
    //执行完成:TASK-3
    //执行完成:TASK-4
    //线程池退出
}

转载于:https://www.cnblogs.com/fly-book/p/11463205.html

【AI Agent】Harness Engineering实践 Harness(运行宿主)是围绕 LLM构建的一套确定性工程系统,其核心职责是:承认模型的固有局限,用可控的工程手段逐一弥补,使"强大但不可靠的推理引擎"变成"可信赖的生产级Agent"模型 是发动机——提供原始动力Agent 是驾驶员——做出决策Harness 是道路、地图、护栏、仪表盘、维修站和质检线——确保行驶安全有序没有Harness,模型越强,可能只是更快地制造混乱。 阅读详情

相关推荐

新手网工别慌!手把手带你搞定华为OLT开局配置(从登录到业务下发全流程)

本文为新手网络工程师提供华为OLT设备开局配置的详细指南,涵盖从设备登录、基础配置到业务部署的全流程。通过实战案例和常见问题排查,帮助读者快速掌握华为OLT配置技巧,确保业务顺利开通。

weixin_33721344的博客 481

ThreadPoolExecute解析

corePoolSize:核心线程数目 maximumPoolSize:最大线程数目 poolSize:当前线程数目 wokeQueue:任务队列 wa 情景:          1.当前线程数目小于核心线程数目(corePoolSize),则创建直接执行                       2.当前线程数目大于核心线程数目(corePoolSize),并且wokeQueu...

qq_41496921的博客 2301

嵌入式人工智能(18-基于树莓派4B的继电器JQC-3FF-S-Z)

本次实验的输出端控制不会接强电,就用LED灯来模拟即可,由于我那个流水灯模块是低电平点亮,所以接线稍有不同,同学们注意。只有继电器吸合,输出端的NO与COM就导通,给LED低电平然后就亮,否则继电器断开,NO与COM不导通,LED不亮。原理都一样,控制电流的接通与断开,这个模块看起来还简单点,毕竟还有2个指示灯,下端IN如接上电源红灯亮,继电器动作有电流通过绿灯亮。在实际应用中,可以通过编程控制继电器的通断状态,例如在Python编程中设置继电器模块的通断时间,从而实现自动化控制。

u010152658的博客 2531

线程池-ThreadPoolExcutor

线程池ThreadPoolExecutor及其原理

qq_34374058的博客 849

STM32F407 HAL库 LIN DMA 配置实战与汽车电子应用解析

本文详细解析了STM32F407 HAL库在LIN总线通信中的DMA配置实战,重点介绍了硬件自动处理断点检测、同步场和校验和的优势。通过具体代码示例和汽车电子应用案例(如车窗控制、座椅调节),阐述了如何利用DMA提升通信效率与稳定性,为成本敏感的汽车电子系统提供高效解决方案。

study的专栏 968

WebUI自动化测试框架搭建(python+pytest+selenium+allure)

将鼠标移动到要定位的元素上面>右键>点击“检查”>在元素代码上右键>复制>复制XPath。

m0_63729339的博客 1281

JDK8 ThreadPoolExecutor 线程池源码深度解析(附几种线程池的扩展方式)

实现 RejectedExecutionHandler 重写 rejectedExecution 方法。//自定义处理方式,可以先打个日志 xxx 被我拒绝了 然后我把它放到了 redis 里 ... //log("r rejected") //save r in kafka、mysql、redis } }// 自定义的线程池类,继承自ThreadPoolExecutor private EagerThreadPoolExecutor executor;

秀强的专栏 710

即梦 AI 全功能零基础详细教程(纯技术版)

即梦 AI 是一款多模态 AI 生成工具,主打文本生成视频、图片生成视频、角色一致性生成、音画同步等核心功能,依托自研 AI 视觉模型,实现从文本 / 图片 / 音频素材输入,到高清视频、图像内容输出的全流程 AI 创作,支持短视频、短剧、创意素材等多场景创作,具备操作门槛低、生成效率高、画面可控性强的技术特点。@为工具内置引用指令,作用是锁定指定素材 / 角色,强制 AI 按照该素材的核心特征生成内容,无额外付费、解锁要求,免费使用。剧本拆分:将短剧拆分为单镜头(15 秒内 / 个)

2501_92061023的博客 5816

Java踩坑记系列之线程池

线程池大家都很熟悉,无论是平时的业务开发还是框架中间件都会用到,大部分都是基于JDK线程池ThreadPoolExecutor做的封装,比如tomcat的线程池,当然也有单独开发的,但都会牵涉到这几个核心参数的设置:核心线程数,等待队列,最大线程数,拒绝策略等。 先说下我们项目组在使用线程池时踩到的坑: 线程池的参数设置一定要结合具体的业务场景,区分I/O密集和CPU密集,如果是I/O密集型业...

zxs0564335的博客 1439

File Load Error for Untitled.ipynb Unhandled error 解决方案

本文主要介绍了File Load Error for Untitled.ipynb Unhandled error 解决方案,希望能对使用jupyter notebook的同学们有所帮助。 文章目录 1. 问题描述 2. 解决方案

weixin_43178406的博客 1万+

MATLAB 控制 E4438C 信号源的研究

通过 MATLAB,我们可以实现对 E4438C 的远程控制,从而实现更高的自动化和可编程性。总结起来,通过使用 MATLAB 和 Instrument Control Toolbox,我们可以轻松地控制 E4438C 信号源并生成各种类型的信号。需要注意的是,以上代码仅为示例,实际应用中可能需要根据具体情况进行更详细的配置和错误处理。此外,MATLAB 还提供了一系列函数和命令,可用于控制 E4438C 信号源的其他功能,如频率调谐、功率设置、调制设置等。您可以根据自己的需求进行相应的配置和控制。

RswtPerl的博客 1012

扩展ThreadPoolExecutor

目录 1、什么是扩展ThreadPoolExecutor 2、哪些情况下可以进行扩展? 3、如何进行扩展? 4、注意事项 5、一个简单的示例 1、什么是扩展ThreadPoolExecutor ThreadPoolExecutor是可扩展的...

weixin_38168322的博客 215

UG NX二次开发(C#)-VS2022配置NX二次开发模板不能正常显示的问题

随着VS2022的发布,使用VS2022进行UG NX二次开发的人员也会越来越多,但是由于VS2022和以前的VS版本采用代码结构不同,而UG NX的二次开发编程模板还没有适应于VS2022的模板配置,所以不能正常的创建一个完整的工程。本文采用曲线救国的方式来实现VS2022下的UG NX二次开发。如果有读者能很好的解决模板配置,不吝赐教。

GimiGimmy 4274

ThreadPoolExecutor 扩展

ThreadPoolExecutor 也是一个可以扩展的线程池,它提供了beforeExecute()、afterExecute()、和terminated()3个接口对线程池进行控制。即开始执行前,执行完成后,终止后 具体扩展代码如下: 1 2 3 4 5 6 7 8 9 10 11 1

383

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

27-扩展ThreadPoolExecutor

扩展ThreadPoolExecutor ThreadPoolExecutor是可扩展的,通过查看源码可以发现,它提供了几个可以在子类化中改写的方法:beforeExecute,afterExecute,terminated。源码片段如下所示: protected void beforeExecute(Thread t, Runnable r) { } protected void aft...

mbmispig的博客 237

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

ThreadPoolExecutor 可扩展性

<br /> <br />到这里对于这个线程池还只是介绍了一小部分。ThreadPoolExecutor 具有很强的可扩展性,不过扩展它的前提是要熟悉它的工作方式。后面的文章将会介绍如何扩展 ThreadPoolExecutor 类。 <br />  java.util.concurrent.ThreadPoolExecutor 类提供了丰富的可扩展性。你可以通过创建它的子类来自定义它的行为。例如,我希望当每个任务结束之后打印一条消息,但我又无法修改任务对象,那么我可以这样写: <br />  除了 aft

Laurence 2696

线程池ThreadPoolExecutor扩展

ThreadPoolExecutor 是可扩展的,它提供了几个可以在子类中改写的方法:beforeExecute、afterExecute、terminated。这些方法可以用于扩展ThreadPoolExecutor的行为。 在执行任务的线程中会调用beforeExecute和afterExecute等方法,在这些方法中可以添加日志、计时、监视或统计信息收集等功能。 新建一个线程池类,继承ThreadPoolExecutor,重写对应方法: beforeExecute:线程池中任务运行前执行。 afte

雨后是冰雹 478

扩展 ThreadpoolExecutor

用有长度限制的队列,可以避免 outOfMemoryError。 有种同步队列(SynchronousQueue),它会立刻把task 交给线程,如果没有线程来处理这个任务,同步队列会拒绝这个 Task。 有那种先进先出(FIFO)的队列(ArrayBlockingQueue 和 LinkedBlockingQueue),也有按优先级来的队列。(priorityBlockingQueue) 一般用 newCachedThreadPool, 它的性能不错。也可以选择有线程数限制的pool,可以保证稳定性

greywolf5的博客 162

ThreadPoolExecutor的扩展

在java中,在并发的情况可以使用ThreadPoolExecutor,但为了提高吞吐量和性能,可以扩展ThreadPoolExecutor。 ThreadPoolExecutor的执行流程: 当core线程数大于当前任务数时,可以创建新的线程; 当core线程数...

chouzhi1945的博客 222

Java可扩展线程池-ThreadPoolExecutor

1、ThreadPoolExecutor 我们知道ThreadPoolExecutor是可扩展的,它提供了几个可以在子类中改写的空方法如下: protected void beforeExecute(Thread t, Runnable r) { } protected void afterExecute(Runnable r, Throwable t) { } protec...

欲望以提升热忱 毅力以磨平高山 1213

扩展 ThreadPoolExecutor 的一种办法

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34315665的博客 125

J.U.C--扩展ThreadPoolExecutor

ThreadPoolExecutor是可以扩展的,它提供了几个在子类中改写的方法,比如:beforeExecute()、afterExecute()、和terminated()方法。这些方法可以扩展ThreadPoolExecutor的执行行为。比如剪监控线程池或则是添加日志之类的。下面是一个例子,给线程池添加统计信息:package thread;import org.apache.log4j.L

惜暮 580

扩展ThreadPoolExecutor实现线程池监控

  摘要:背景在开发中,我们经常要使用Executors类创建线程池来执行大量的任务,使用线程池的并发特性提高系统的吞吐量。但是,线程池使用不当也会使服务器资源枯竭,导致异常情况的发生,比如固定线程池的阻塞队列任务数量过多、缓存线程池创建的线程过多导致内存溢出、系统假死等问题。因此,我们需要一种简单的监控方案来监控线程池的使用情况,比如完成任务数量、未完成任务数量、线程大小等信息。Executo...

zhujianlin1990的专栏 4126

JAVA多线程之扩展ThreadPoolExecutor

欢迎支持笔者新作:《深入理解Kafka:核心设计与实践原理》和《RabbitMQ实战指南》,同时欢迎关注笔者的微信公众号:朱小厮的博客。 ThreadPoolExecutor是可扩展的,通过查看源码可以发现,它提供了几个可以在子类化中改写的方法:beforeExecute,afterExecute,terminated. 源码片段如下所示: protected void ...

朱小厮的博客 1万+

并发编程工具 - Tomcat对ThreadPoolExecutor线程池的扩展

目录 1、Tomcat定制自己的TaskThreadFactory 2、Tomcat定制TaskQueue集成自LinkedBlockeingQueue 3、Tomcat定制扩展ThreadPoolExecutor 分析完juc的线程池源码并发编程工具 - ThreadPoolExecutor源码解析,理解了线程池执行的过程(即 execute(Runnable runnable)),再回顾一下线程池的执行源代码: 当一个新的任务(Runnable)进入: 1、如果不足核心线程数,直..

it_lihongmin的博客 1828
上一篇: 自定义线程创建
下一篇: 线程池异常堆栈的坑
dffxwe51549
博客等级 码龄12年 1粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值