1、线程池的类class structure:
备注:
Executor:执行线程的工具;
ExecutorService是真正的线程池接口;
ThreadPoolExecutor:ExecutorService的默认实现;
ScheduledExecutorService:解决周期性调用的问题;
Executors:线程工具类。
2、 创建线程池:
① newSingleThreadExecutor():创建一个单线程的线程池。这个线程池只有一个线程在工作,也就是相当于单线程串行执行所有任务。如果这个唯一的线程因为异常结束,那么会有一个新的线程来替代它。此线程池保证所有任务的执行顺序按照任务的提交顺序执行。
②
newFixedThreadPool(int
n):创建固定大小的线程池。每次提交一个任务就创建一个线程,直到线程达到线程池的最大值。线程池的大小一旦达到最大值就会保持不变,如果某个线程因为执行异常而结束,那么线程池会补充一个新线程。
③
newCachedThreadPool():创建一个可缓存的线程池。如果线程池的大小超过了处理任务所需要的线程,那么就会回收部分空闲(60秒不执行任务)的线程,当任务数增加时,此线程池又可以智能的添加新线程来处理任务。此线程池不会对线程池大小做限制,线程池大小完全依赖于操作系统(或者说JVM)能够创建的最大线程大小。
④
newScheduledThreadPool(int
n):创建一个大小无限的线程池。此线程池支持定时以及周期性执行任务的需求。
⑤
newSingleThreadScheduledExecutor
():创建一个单线程的线程池。此线程池支持定时以及周期性执行任务的需求。
备注: 所有创建方式都可以加一个参数:ThreadFactory
参考资料:
《深入浅出 Java Concurrency》目录
分享到:
相关推荐
线程池是多线程编程中的一个重要概念,它在Java中通过`java.util.concurrent`包中的`ExecutorService`接口及其实现类实现。线程池的使用能够有效地管理和控制线程资源,避免频繁创建和销毁线程带来的性能开销,提高...
线程池是一种多线程处理形式,通过维护一组可重用线程来处理并发任务,以提高系统的效率和响应速度。在本项目中,我们关注的是一个使用C语言实现的线程池,它已被测试在Linux环境下运行。下面将详细讨论线程池的基本...
在JDK 1.5版本之前,Java对线程池的支持非常有限,而在JDK 1.5之后,加入了java.util.concurrent包,其中包含了一系列关于线程池的接口和类,极大地丰富了线程池的应用场景和管理方式。 线程池的主要作用是限制系统...
下面是关于线程池的详细知识点。 一、线程池类 Java 中的线程池类是 `java.util.concurrent.ThreadPoolExecutor`,它提供了一个线程池的实现。该类有一个构造方法,参数包括: * `corePoolSize`:线程池维护线程...
文件"www.pudn.com.txt"和"CThreadModel"可能包含了关于线程池模型的更具体实现细节或示例代码,通过阅读这些文件,可以深入理解如何在实际项目中构建和使用网络线程池。 总之,网络线程池是网络游戏开发中不可或缺...
"read.txt"可能是一个阅读文件,提供了关于线程池库的使用指南、注意事项或者开发者对库的注释。这将帮助用户更好地理解和应用提供的库。 "Project"、"lib"、"soure"和"static_lib"是常见的项目目录,它们可能分别...
关于线程池你不得不知道的一些设置 线程池是 Java 并发编程中非常重要的一部分,它可以帮助我们更好地管理线程,提高程序的性能和可靠性。今天,我们将讨论关于线程池的一些设置,包括预先创建线程、核心线程的回收...
它可能指向了关于线程池的讨论、文章或者更多的示例代码。 理解并有效地使用线程池是优化并发性能的关键。合理设置线程池参数、选择合适的工作队列类型以及正确地管理和调度任务,都能帮助系统更好地应对高并发场景...
在`spring3.0.5_TaskExecutor`这个压缩包中,可能包含了Spring 3.0.5版本关于线程池的示例代码和配置文件,你可以通过研究这些示例来进一步了解如何在实际项目中使用Spring的线程池功能。 总结来说,Spring的线程池...
`src`目录则是源代码存放的地方,通常包含`java`子目录,用于存放`.java`源代码文件,可能包含示例中关于线程池和ThreadGroup的实现。 要理解`java线程池threadpool简单使用源码`,你需要查看`src`目录下的Java文件...
不过,标题中提到的是“易语言完美的线程池源码”,这可能是指使用易语言实现的线程池代码,但标签却是"C++",这可能意味着提供的资源中包含了易语言和C++两种语言关于线程池的示例。 6. **项目文件解析** - `简单...
线程池是一种高效的多...综上所述,"vs2005线程池工程文件"是一个关于线程池设计和实现的实例,涵盖了线程的创建、管理、删除,以及线程同步和任务调度等多方面的知识,对于理解和实践多线程编程具有重要的参考价值。
表1展示了一个关于线程池大小对完成特定任务所需时间影响的测试结果。从表中可以看出,随着线程池大小的增加,完成任务所需的平均时间呈现出先下降后上升的趋势。这是因为在线程池较小的情况下,由于线程数量不足以...
是一个java在进行socket编程时,关于线程池的介绍,有代码和例子
《易语言源码优易线程池》是一个关于线程池实现的编程资源,主要针对易语言这一编程环境。易语言是一种以中文为编程语法的编程语言,旨在降低编程的入门难度,让更多人能参与到软件开发中来。线程池是多线程编程中的...
关于线程池的异常处理,提交给线程池的任务可能会抛出RuntimeException,线程池在捕获这些异常后可能会创建新线程代替异常线程继续执行,或者直接忽略。因此,在使用线程池时,需要对任务的异常处理进行适当的考虑。...
在Java编程中,线程池是一种管理线程资源的有效方式,它可以提高...在阅读《聊聊并发(3)Java线程池的分析和使用》这份文档时,你可以学习到更多关于线程池的实践技巧和案例分析,这对于提升Java开发能力大有裨益。
标题 "Java 线程池完整代码" 表明了这篇文章的主题是关于 Java 线程池的完整实现代码,涵盖了线程池的基本概念、配置文件的解析、线程池的创建和管理等方面。 描述解析 描述 "Java 线程池完整源码" 说明了这篇文章...
本资源包含了一个关于C++线程池的PPT,下面将详细探讨C++线程池的相关知识点。 首先,线程池的基本概念是预先创建一组线程,这些线程在完成任务后不会立即销毁,而是等待新的任务到来。当有新的任务需要执行时,...
在`wf170513-朱琴英-线程池`这个压缩包中,可能包含了一个关于线程池的示例代码,用于展示如何在C++或者其它编程语言中实现线程池。代码中可能会涉及以下关键部分: 1. **线程池类定义**:定义一个线程池类,包含...