`
he_wen
  • 浏览: 239413 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

java线程池的设计思想

    博客分类:
  • Java
阅读更多
ExecutorService executorForFM = new ThreadPoolExecutor(
				500, 800, 2L, TimeUnit.MILLISECONDS,
				new LinkedBlockingQueue<Runnable>(7000));
由这个线程池执行上面的两个任务集合,参数说明500个核心线程他会一直在线程池中的,800核心线程是线程池容纳最
大数目,2毫秒表示线程池中如果大于核心线程数目那么闲散的线程会在2两毫秒终止线程(在没有接受新任务的情况下)
 
1、如果线程池中运行的线程 小于corePoolSize ,即使线程池中的线程都处于空闲状态,也要 创建新的线程 来处理
     被添加的任务。 
2、如果线程池中运行的线程大于等于corePoolSize,但是缓冲队列 workQueue未满 ,那么任务被放入缓冲队列 。 
3、如果此时线程池中的数量大于corePoolSize,缓冲队列workQueue满(即无法将请求加入队列 ),并且线程池中
     的数量小于maximumPoolSize,建新的线程 来处理被添加的任务。 
     如果此时线程池中的数量大于corePoolSize,缓冲队列workQueue满,并且线程池中的数量等于
     maximumPoolSize ,那么通过 handler 所指定的策略来处理此任务。(
     ThreadPoolExecutor.AbortPolicy()//抛出java.util.concurrent.RejectedExecutionException异常
ThreadPoolExecutor.CallerRunsPolicy()//重试添加当前的任务,他会自动重复调用execute()方法
ThreadPoolExecutor.DiscardOldestPolicy()//抛弃旧的任务
ThreadPoolExecutor.DiscardPolicy()// 抛弃当前的任务)
4、当线程池中的线程数量大于 corePoolSize时,如果某线程空闲时间超过keepAliveTime,线程将被终止 。这样,
    线程池可以动态的调整池中的线程数。 



  • 大小: 153.8 KB
  • 大小: 86.9 KB
分享到:
评论

相关推荐

    Zz: java 线程池设计思想

    Java线程池是一种高效管理线程资源的工具,它的设计思想是基于生产者消费者模型,借鉴了工厂模式和代理模式的元素。线程池通过维护一组可重用线程,减少了创建和销毁线程的开销,提高了系统响应速度与并发处理能力。...

    自定义实现Java线程池

    虽然这个实现非常基础,但它涵盖了线程池的主要设计思想和技术要点。对于更复杂的应用场景,建议使用成熟的线程池框架,如`ThreadPoolExecutor`,它可以提供更完善的特性和更好的性能。 通过本次实践,我们不仅了解...

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

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

    Java 线程池详解,图文并茂.pdf

    线程池的设计思想源于生活,例如工厂的生产流程可以看作是一个线程池。 在 Java 中,线程池的实现类是 ThreadPoolExecutor,它提供了四个构造方法来创建线程池。这些构造方法的参数包括核心线程数、最大线程数、...

    java线程池

    Java线程池的核心思想在于重用已创建的线程以及控制同时运行的线程数量。在没有线程池的情况下,每当有新任务提交时都需要创建一个新的线程来执行该任务,这会导致大量的系统资源消耗,尤其是在频繁创建和销毁线程时...

    一种类似JAVA线程池的C++线程池实现方法

    不过,需要注意的是,虽然这种实现借鉴了Java线程池的设计思想,但C++标准库并没有提供内置的线程池实现,因此自定义线程池需要考虑平台兼容性、线程同步、错误处理等问题。此外,对于大型项目,可能还需要考虑...

    Java课程设计(简易聊天室)

    Java课程设计——简易聊天室 在Java编程领域,课程设计是学习过程中不可或缺的一部分,它旨在让学生将所学理论知识应用于实际项目中。本项目“Java课程设计(简易聊天室)”就是一个很好的实践案例,它涵盖了网络...

    JAVA服务器端Socket线程池

    线程池是一种基于池化思想的设计模式,用于管理和复用一定数量的线程,从而提高系统的响应速度和资源利用率。通常包含以下几个关键特性: - **初始化**:创建线程池时,可以根据实际需求设置线程池的最大线程数、...

    Java croe java 思想

    通过阅读《Java核心编程思想》,读者不仅能全面掌握Java语言,还能了解到许多最佳实践和设计模式,从而在实际项目开发中游刃有余。这本书的2010最新版可能还包含了Java新特性的介绍,比如Java 7和8的Lambda表达式、...

    java线程池源码-java-source:Java源码学习多线程、线程池、集合

    Java线程池是Java并发编程中的重要组成部分,它在多线程编程中扮演着调度和管理线程的角色,有效地提高了程序...此外,源码阅读也有助于理解Java并发库的设计思想和实现技巧,为成为一名优秀的Java开发者打下坚实基础。

    深入研究线程池~

    本文将从线程池的原理、设计原则以及在Java中的实现细节等方面进行深入探讨。 ### 线程池的核心价值 #### 提升资源利用率 线程的创建和销毁都是较为昂贵的操作,不仅消耗系统资源,还可能导致上下文切换的开销。...

    Java程序设计一种跨学科的方法 英文版

    《Java程序设计一种跨学科的方法》是一本专为学习Java编程语言而编写的教材,英文版则为非母语为中文的学习者提供了更多的选择。这本书深入浅出地讲解了Java编程的基础知识,同时也注重与其他学科的交叉应用,使得...

    Java语言程序设计与数据结构(第11版)_java_

    6. **多线程**:Java支持并发编程,书中有章节讲解线程的概念、创建和同步,以及线程池的使用。 7. **数据结构**:数据结构是编程中不可或缺的部分,包括数组、链表、栈、队列、树(二叉树、平衡树如AVL和红黑树)...

    Java代码构建一个线程池

    线程池是一种基于池化技术的设计模式,其核心思想是在程序启动时创建一定数量的线程放入池中供后续任务使用,当有新的任务到来时,线程池会分配一个空闲线程来执行该任务。这种方式可以有效减少线程创建和销毁带来的...

    java程序设计精编教程第三版(作业与期末复习题)

    Java程序设计精编教程第三版,是一本深入探讨Java编程技术的教材,涵盖了广泛的Java学习内容,特别强调了对重要概念和技术的实践应用。作为复习资料,它针对学生的学习进度和教师强调的重点进行了精心整理,旨在帮助...

    Java编辑思想(中文第四版)

    在多线程部分,读者将学习到如何在Java中创建和管理线程,理解线程同步的概念,如synchronized关键字、wait()、notify()和notifyAll()方法,以及线程池的使用,这些都是并发编程的关键。 输入/输出流和网络编程章节...

    《JAVA语言程序设计》期末考试试题及答案_java期末考试_java_

    Java语言程序设计是计算机科学与技术专业的重要课程之一,它主要教授如何使用Java语言进行软件开发。本资料《JAVA语言程序设计》期末考试试题及答案提供了全面的学习和复习指南,帮助学生理解和掌握Java编程的核心...

    Java 编程思想中文第三版(PDF)

    - 设计模式:讲解常用的23种设计模式,如何在Java中应用。 - 测试驱动开发:TDD理念,JUnit测试框架的使用。 - 代码风格与重构:良好的编程习惯,提高代码可读性和可维护性。 《Java编程思想》第三版中文版不仅...

    基于事件(AOP)的concurrent线程池

    标题中的“基于事件(AOP)的concurrent线程池”是指一种将面向切面编程(AOP)思想与Java并发库中的线程池(ThreadPoolExecutor)相结合的设计模式。这种模式利用了AOP的特性,通过在执行任务前后插入特定的处理逻辑...

Global site tag (gtag.js) - Google Analytics