`

java-通过钩子扩展ThreadPoolExecutor线程池

阅读更多

1、ThreadPoolExecutor的设计是可扩展的,它提供了几个钩子让子类去覆写

1)beforeExecute和afterExecutor:可有它们来进行信息收集。无论任务是正常地从run中返回,还是抛出一个异常,afterExecutor都会被调用。如果任务完成后抛出一个error,则afterExecute不会被调用。如果beforeExecute抛出一个RuntimeException,任务将不被执行,afterExecute也不会被调用。

2)terminated钩子会在线程池完成关闭动作后调用,也就是当所有任务都已完成并县城所有工作者线程也已经关闭后,会执行terminated。terminated释放Executor在生命周期内分配到的资源,还可以发出通知、记录日志或完成统计信息。

http://deepfuture.iteye.com/blog/599666

分享到:
评论

相关推荐

    java 线程池例子ThreadPoolExecutor

    Java 线程池例子 ThreadPoolExecutor Java 中的线程池是指一个容器,里面包含了多个线程,这些线程可以重复使用,以避免频繁创建和销毁线程的开销。ThreadPoolExecutor 是 Java 中一个非常重要的线程池实现类,它...

    死磕ThreadPoolExecutor线程池.pdf

    死磕ThreadPoolExecutor线程池.pdf!!死磕ThreadPoolExecutor线程池.pdf死磕ThreadPoolExecutor线程池.pdf死磕ThreadPoolExecutor线程池.pdf

    Java ThreadPoolExecutor 线程池的使用介绍

    提供工厂方法来创建不同类型的线程池,这篇文章主要介绍了Java ThreadPoolExecutor 线程池的使用介绍,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来...

    自定义实现Java线程池1-模拟jdk线程池执行流程1

    首先,Java中的线程池设计始于JDK 5.0,主要通过`java.util.concurrent`包中的`Executor`接口实现。这个接口仅有一个`execute()`方法,用于提交执行任务。我们也将遵循这个设计,实现一个简单的线程池类`...

    Socket网络编程学习笔记之---使用线程池提高性能

    在Java中,ExecutorService和ThreadPoolExecutor是实现线程池的主要接口和类。 三、线程池的优势 1. 提高性能:线程池减少了创建和销毁线程的开销,因为线程可以被重复使用。 2. 控制并发量:通过设置最大线程数,...

    JAVA线程池例子

    - `ThreadPoolExecutor`:这是Java中最常用的线程池实现,可以通过构造函数自定义线程池参数,如核心线程数、最大线程数、工作队列类型等。 - `Executors`类提供的预定义线程池: - `newFixedThreadPool`:固定...

    ThreadPoolExecutor线程池的使用方法

    ThreadPoolExecutor线程池是Java提供的开发框架,管理线程的创建、销毁、优化、监控等。它提供了四种不同的任务队列:ArrayBlockingQueue、LinkedBlockingQueue、SynchronousQueue和PriorityBlockingQueue。每种队列...

    java多线程,对多线程,线程池进行封装,方便使用

    线程池通过重用已存在的线程,避免了频繁创建和销毁线程带来的性能损失。 2. **资源管理** 线程池可以限制系统中并发执行的线程数量,根据系统资源动态调整,防止过度消耗资源导致系统崩溃。 3. **任务调度** ...

    java线程池使用后到底要关闭吗

    java线程池使用后到底要关闭吗 java线程池是一种高效的并发编程技术,可以帮助开发者更好地管理线程资源,提高系统的性能和可靠性。然而,在使用java线程池时,一个常见的问题是:使用完线程池后到底要不要关闭?...

    Java 线程池的原理与实现

    - **Java内置线程池**:Java通过`java.util.concurrent`包中的`ExecutorService`接口及其实现类如`ThreadPoolExecutor`提供了线程池的实现。`ThreadPoolExecutor`允许自定义线程池的核心参数,如核心线程数、最大...

    java 线程池实现多并发队列后进先出

    线程池通过任务队列(工作队列)来管理待执行的任务。在"java 线程池实现多并发队列后进先出"这个主题中,我们关注的是线程池如何利用特定类型的队列来实现后进先出(LIFO,Last-In-First-Out)的行为。通常,线程池...

    Java线程池与ThreadPoolExecutor.pdf

    线程池通过ThreadPoolExecutor类实现,这是一个高度可配置的工具,能够根据具体需求定制线程的创建、管理和销毁策略。 ThreadPoolExecutor的核心参数包括: 1. corePoolSize:核心线程数,这是线程池在非繁忙状态下...

    java 四种线程池实例

    本文将深入探讨四种常见的Java线程池实例:`ThreadPoolExecutor`、`Executors`提供的固定线程池、单线程池和定时线程池。 1. **ThreadPoolExecutor**: 这是最基础也是最灵活的线程池实现,可以通过`new ...

    JDK1.5中的线程池(java.util.concurrent.ThreadPoolExecutor)使用

    Java中的线程池是通过ThreadPoolExecutor类实现的。 一、ThreadPoolExecutor类 ThreadPoolExecutor类是Java中线程池的核心类。该类提供了一个灵活的线程池管理机制,允许开发者根据需要创建和管理线程池。...

    java线程池ThreadPoolExecutor类使用详解.docx

    在《阿里巴巴java开发手册》中指出了线程资源必须通过线程池提供,不允许在应用中自行显示的创建线程,这样一方面是线程的创建更加规范,可以合理控制开辟线程的数量;另一方面线程的细节管理交给线程池处理,优化了...

    java线程池实例详细讲解

    Java线程池的实现主要有`ThreadPoolExecutor`类,它提供了丰富的构造参数来定制线程池的行为: - `corePoolSize`:线程池的基本大小,即当线程池创建后和运行过程中,即使没有任务,也会保持这个数量的线程存活。 -...

Global site tag (gtag.js) - Google Analytics