`
he_wen
  • 浏览: 234327 次
  • 性别: 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 线程池设计思想

    NULL 博文链接:https://greatwqs.iteye.com/blog/2429185

    自定义实现Java线程池

    自定义实现Java线程池,学习大师设计思想,瞻仰大神笔法

    java 任务调度之ScheduledExecutor

    鉴于 Timer 的上述缺陷,Java 5 推出了基于线程池设计的 ScheduledExecutor。其设计思想是,每一个被调度的任务都会由线程池中一个线程去执行,因此任务是并发执行的,相互之间不会受到干扰。需 要注意的是,只有当...

    Java后端知识+Java并发系统设计

    这三种方法可以在做方案设计时灵活地运用,但它不是具体实施的方案,而是三种思想,在实际运用中会千变万化。 了解了性能的原则、度量指标,以及在高并发下优化性能的基本思路。 了解了如何度量系统的可用性,以及在...

    Java并发编程实践 PDF 高清版

    本书并不仅仅提供并发API的清单及其机制,本书还提供了设计原则,模式和思想模型,使我们能够更好地构建正确的,性能良好的并发程序。 本书的读者是那些具有一定Java编程经验的程序员、希望了解Java SE 5,6在线程...

    Java-note:Java学习笔记

    Java-noteJava学习笔记java相关Java基础Java集合JVMJava并发线程池Java网络计算机基础数据库计算机网络操作系统面向对象思想面向对象设计模式Java WebSpringSpringBoot

    IOIF基于开源技术的JAVA开发框架

    IOIF的提出是为了避免每个项目重新考虑与实现框架,在提高项目开发进度的同时,框架在设计上也封装了一些程序员容易出错的地方,使整个项目更安全更健壮。 IOIF以EXTJS为前端,以Spring、Struts、Hibernate为后端,...

    J2SE技术总结-Java学习精华教程-电子书

    本书内容非常全面,涵盖了《Java编程思想》、《Java学习笔记》等书籍所有知识要点,并结合作者自己经验总结而编写,内容丰富程度胜过一切书籍 众所周知,一般书籍为了销售需要,往往很少的知识点,却需要添加大量的...

    设计模式Demo

    还是一个降低类之间的耦合度的意思,从这儿我们看出,其实设计模式就是一个软件的设计思想,从大型软件架构出发,为了升级和维护方便。所以上文中多次出现:降低依赖,降低耦合。 5、迪米特法则(最少知道原则)...

    java8集合源码分析-toBeTopJavaArchitect:Java架构师--成神之路

    java8 集合源码分析 Java架构师--成神之路 修改记录 版本 编写时间 作者 描述 v1.0.0 2019-10-29 Rock.Sang ...设计思想和开发模式篇 设计模式 领域驱动设计 Actor模式 响应式编程 DODAF2.0 Serverl

    JDK8Translation:学习Java8代码,了解Java常用类库的原理,该工程转换为JDK8常用的类库注释

    起因:由于之前经常会翻看JDK的源码,尤其是JUC包下面的一些类库,发现一些类中开头的大段英语注释写的非常好,很多时候都说明了设计思路以及这样做的原因,所以想把这些注释翻译成中文,便于自己温习的同时也方便...

    javaSE代码实例

    6.1.1 面向对象程序设计思想的诞生 77 6.1.2 面向过程与面向对象思想的对比 78 6.1.3 面向对象技术的背景和特点 79 6.2 类的定义与对象的创建 80 6.3 成员变量 81 6.3.1 成员变量的开发与使用 81 6.3.2...

    beetle:一个不太疯狂的Kafka客户端API

    设计/注释/思想 笔记 现在,这一部分几乎只是一个转储/正在进行的工作 上游Kafka客户根本缺少的是对世界的看法。 尽管Zookeeper和Kafka的模型实际上是由事件驱动的,但利用繁忙循环和不连贯的逻辑来进行重新连接和...

Global site tag (gtag.js) - Google Analytics