`

JAVA线程池原理以及常用线程池介绍

阅读更多

什么原因使我们不得不使用线程池?

个人认为主要原因是:短时间内需要处理的任务数量很多。

使用线程池的好处:

1.减少在创建和销毁线程上所花的时间以及系统资源的开销 
2.如不使用线程池,有可能造成系统创建大量线程而导致消耗完系统内存

以下是Java自带的几种线程池:

1、newFixedThreadPool  创建一个指定工作线程数量的线程池。每当提交一个任务就创建一个工作线程,如果工作线程数量达到线程池初始的最大数,则将提交的任务存入到池队列中。 2、newCachedThreadPool 创建一个可缓存的线程池。

这种类型的线程池特点是: 
1).工作线程的创建数量几乎没有限制(其实也有限制的,数目为Interger. MAX_VALUE), 这样可灵活的往线程池中添加线程。 

2).如果长时间没有往线程池中提交任务,即如果工作线程空闲了指定的时间(默认为1分钟),则该工作线程将自动终止。终止后,如果你又提交了新的任务,则线程池重新创建一个工作线程。

 

3、newSingleThreadExecutor 创建一个单线程化的Executor,即只创建唯一的工作者线程来执行任务,如果这个线程异常结束,会有另一个取代它,保证顺序执行(我觉得这点是它的特色)

 

单工作线程最大的特点是可保证顺序地执行各个任务,并且在任意给定的时间不会有多个线程是活动的 。

4、newScheduleThreadPool  创建一个定长的线程池,而且支持定时的以及周期性的任务执行,类似于Timer。

 

 

总结: 

 

一.FixedThreadPool是一个典型且优秀的线程池,它具有线程池提高程序效率和节省创建线程时所耗的开销的优点。但在线程池空闲时,即线程池中没有可运行任务时,它不会释放工作线程,还会占用一定的系统资源。 

二.CachedThreadPool的特点就是在线程池空闲时,即线程池中没有可运行任务时,它会释放工作线程,从而释放工作线程所占用的资源。但是,但当出现新任务时,又要创建一新的工作线程,又要一定的系统开销。并且,在使用CachedThreadPool时,一定要注意控制任务的数量,否则,由于大量线程同时运行,很有会造成系统瘫痪。

 

 

 

 

 

分享到:
评论

相关推荐

    JAVA线程池原理以及几种线程池类型介绍

    ### JAVA线程池原理及几种线程池类型的详细介绍 #### 一、线程池的引入背景及重要性 在现代软件开发中,特别是在基于Java的应用程序设计中,线程池技术已经成为提高系统性能和资源利用率的关键手段之一。线程池...

    java线程池封装j

    本文将深入探讨Java线程池的原理、封装以及相关知识点。 ### 1. Java线程池概念 Java线程池由`java.util.concurrent`包中的`ExecutorService`接口和其子类实现。其中,最常用的是`ThreadPoolExecutor`类,它提供了...

    JAVA线程池例子

    Java线程池是一种高效管理线程资源的技术,它允许开发者创建一组可重用的工作线程,从而避免频繁地创建和销毁线程带来的性能开销。线程池在Java中主要通过`java.util.concurrent`包中的`ExecutorService`接口及其...

    Java常用线程池原理及使用方法解析

    Java线程池是一种高效管理线程的工具,它允许开发者预先创建一组线程,当需要执行新任务时,线程池会从池中选择一个空闲线程来执行任务,而不是每次都创建新的线程。线程池的使用有助于减少线程创建和销毁的开销,...

    JAVA集中常用的线程池比较.pdf

    总的来说,Java线程池是实现高效并发处理的关键工具,但其使用需要谨慎,需要根据应用需求合理配置线程池大小,以及正确处理并发操作,以确保系统稳定性和性能。同时,利用Java提供的并发工具类可以降低编程复杂性,...

    Java实现的线程池、消息队列功能

    标题中的“Java实现的...总的来说,这个主题涵盖了Java并发编程中的核心概念,线程池和消息队列的实现原理及应用场景,以及可能用到的相关开发工具。理解并熟练运用这些知识对于提升Java应用的性能和稳定性至关重要。

    java线程池实现批量下载文件

    下面将对Java线程池实现批量下载文件的原理和实现进行详细介绍。 Java线程池机制 Java线程池机制是Java并发编程中的一种常用机制,用于管理和执行多个线程。线程池机制可以将多个线程组织起来,实现多个任务的...

    面试必备:Java线程池解析.pdf

    在Java中,线程池是一种实现池化技术的方式,主要是为了减少频繁创建和销毁线程所...了解以上知识点,能够帮助后端开发者更好地掌握Java线程池,应对面试中的相关问题,并在实际开发中更有效地使用线程池优化程序性能。

    JAVA集中常用的线程池比较共8页.pdf.zip

    Java线程池是Java并发编程中的重要组成部分,它在多线程环境下的任务调度和管理中扮演着核心角色。...因此,深入理解Java线程池的工作原理和使用方式,对于优化并发程序、提高系统效率具有重要意义。

    基于Java线程池技术实现Knock Knock游戏项目.zip

    项目文档:详细的项目文档,介绍了项目的背景、功能、架构以及实现细节,帮助你更好地理解项目。 操作手册与使用说明:针对每个游戏项目,都准备了详细的操作手册和使用说明,手把手教你如何运行和测试项目。 学习...

    java内置线程池 !!!

    ### Java内置线程池详解 #### 一、线程池基本概念 在深入探讨Java内置线程池之前,我们首先需要了解线程池的基本概念及其重要性。 **线程池**是一种多...以上是关于Java内置线程池的详细介绍,希望对您有所帮助。

    Java分布式应用学习笔记07线程池应用

    #### Java线程池实现 在Java中,`java.util.concurrent.ExecutorService`接口提供了创建和管理线程池的能力,而`ThreadPoolExecutor`类则是其最常用的实现之一。`ThreadPoolExecutor`允许我们自定义线程池的关键...

    JavaThreaddemo_DEMO_tidecme_线程池Java_源码.zip

    Java线程池是Java并发编程中的重要组成部分,它在多线程编程中扮演着至关重要的角色,有效地管理和调度线程资源,提高系统性能并降低资源消耗。本资料"JavaThreaddemo_DEMO_tidecme_线程池Java_源码.zip"包含了关于...

    并发-线程池和阻塞队列.pdf

    本文将详细介绍线程池原理、使用场景及注意事项,以及阻塞队列的相关知识。 首先,线程池是一种基于池化思想管理线程的技术,它可以重用一组线程执行多个任务。线程池的工作原理是通过维护一定数量的工作线程,这些...

    ThreadPoolExecutor线程池原理及其execute方法(详解)

    ThreadPoolExecutor线程池原理及其execute方法详解 ThreadPoolExecutor是Java并发包中提供的线程池类,用于管理和执行异步任务。ThreadPoolExecutor的执行原理可以分为四个步骤: 1.核心线程池:...

    线程池的概念

    下面将详细阐述线程池的工作原理、优势以及如何在Java中实现线程池。 线程池的工作机制: 1. **线程复用**:线程池中的线程可以被多次复用,而不是每次任务执行完毕就销毁。这减少了线程创建和销毁的开销,提高了...

    Java面试题以及答案收集

    - **Map接口**:了解key-value存储结构,以及常用的实现类。 5. **多线程** - **线程创建**:通过实现Runnable接口和继承Thread类创建线程。 - **同步机制**:synchronized关键字,wait()、notify()和notifyAll...

    并发容器和线程池,java并发编程3

    `ThreadPoolExecutor`是最常用的自定义线程池实现,用户可以根据需求自定义线程池的核心参数,包括核心线程数、最大线程数、空闲线程存活时间等。 **特点**: - **自定义线程池**:可以根据具体需求定制线程池的...

Global site tag (gtag.js) - Google Analytics