美文网首页
Java线程池的理解的记录

Java线程池的理解的记录

作者: Ombres | 来源:发表于2019-07-10 20:44 被阅读0次

为什么要使用线程池

  1. 降低资源消耗
    重复利用已创建的线程降低线程创建和销毁造成的消耗。
  2. 提高响应速度
    当任务到达时,任务可以不需要等到线程创建就能立即执行。
  3. 提高线程的可管理性
    线程是稀缺资源,如果无限制地创建,不仅会消耗系统资源,还会降低系统的稳定性,使用线程池可以进行统一分配、调优和监控

白话理解线程池

线程的创建和销毁的代价很大,我们不能无限制的创建和销毁线程,那么就需要一个合适的方式去获取线程,比如,预先创建好一些线程,统一管理,用到的时候就取一个,用完就归还,线程不够的时候就先把任务存到一个队列中,有空闲的线程就开始执行。

如何使用线程池

既然能理解为什么要使用线程池,那么,不同场景对线程池的要求也就不一样了。那么如何合理的使用线程池呢?
我们可以做个预算,很简单的以时间来评定的话(当然实际场景可能不会这么简单),线程创建消耗为t1,线程销毁的消耗为t2,任务耗时为t3。那么一个任务的消耗评估为t1+t2+t3。
这种情况下,评估一个任务是否值得使用线程池就可以理解为t1+t2与t3的时间的比。当t3远小于t1+t2时,频繁创建销毁线程池会带来更大的损耗。当消耗相反的情况下,在需要使用的时候再去创建线程是更好的选择,这样能更合理的让计算机的线程资源在其他地方得到更好的应用。

小结

高并发,低耗时 使用固定数量的线程,在Java中可以考虑fixedthreadpool
低并发,高耗时 使用cachedthreadpool,当需要的时候再去创建线程,尽量把空闲时候的计算机资源让给其他应用使用
高并发,高耗时 将任务转换为以上两种的情况再去处理。比如,分到多台服务器,每台服务器的处理就变成了低并发,高耗时的方案

相关文章

  • 万字长文:带你透彻理解“线程池”

    目标 【理解】线程池的基本概念 【理解】线程池工作原理 【掌握】自定义线程池 【应用】java内置线程池 【应用】...

  • Java线程池的理解的记录

    为什么要使用线程池 降低资源消耗重复利用已创建的线程降低线程创建和销毁造成的消耗。 提高响应速度当任务到达时,任务...

  • 【学习笔记】java线程池

    深入理解Java之线程池

  • 深入理解Java线程池

    深入理解Java线程池 线程池初探 所谓线程池,就是将多个线程放在一个池子里面(所谓池化技术),然后需要线程的时候...

  • J.U.C——线程池专题

    主要讨论以下问题: 认识Java线程池 线程池的种类,区别,和使用场景 线程池的工作流程 线程池几个参数的理解 分...

  • Java线程池快速理解

    Java线程池 [toc] 什么是线程池 线程池就是有N个子线程共同在运行的线程组合。 举个容易理解的例子:有个线...

  • 线程池的原理

    参考 深入Java源码理解线程池原理 线程池是对CPU利用的优化手段 线程池使用池化技术实现,替他的实现还有连接池...

  • 线程池工作机制与原理

    书接上文, Java线程池 。接下来记录一下线程池的工作机制和原理 线程池的两个核心队列: 线程等待池,即线程队列...

  • 线程池源码解读

    深入分析java线程池的实现原理 ps: 用一个AtomicInteger记录 线程池状态和其中的线程个数, 其中...

  • java线程池的理解

    线程池的原理正在学习中,如有不当之处,请勿见怪,这篇文章仅仅是我怕忘记而写的。 1.线程池出现的原因当需要使用很多...

网友评论

      本文标题:Java线程池的理解的记录

      本文链接:https://www.haomeiwen.com/subject/jymkkctx.html