美文网首页
什么是线程池(thread pool)?

什么是线程池(thread pool)?

作者: 唐怀瑟_ | 来源:发表于2018-07-25 17:58 被阅读309次

在面向对象编程中,创建和销毁对象是很费时间的,因为创建一个对象要获取内存资源或者其它更多资源。在Java中更是如此,虚拟机将试图跟踪每一个对象,以便能够在对象销毁后进行垃圾回收。所以提高服务程序效率的一个手段就是尽可能减少创建和销毁对象的次数,特别是一些很耗资源的对象创建和销毁,这就是”池化资源”技术产生的原因。线程池顾名思义就是事先创建若干个可执行的线程放入一个池(容器)中,需要的时候从池中获取线程不用自行创建,使用完毕不需要销毁线程而是放回池中,从而减少创建和销毁线程对象的开销。
Java 5+中的Executor接口定义一个执行线程的工具。它的子类型即线程池接口是ExecutorService。要配置一个线程池是比较复杂的,尤其是对于线程池的原理不是很清楚的情况下,因此在工具类Executors面提供了一些静态工厂方法,生成一些常用的线程池,如下所示:

  • newSingleThreadExecutor:创建一个单线程的线程池。这个线程池只有一个线程在工作,也就是相当于单线程串行执行所有任务。如果这个唯一的线程因为异常结束,那么会有一个新的线程来替代它。此线程池保证所有任务的执行顺序按照任务的提交顺序执行。
  • newFixedThreadPool:创建固定大小的线程池。每次提交一个任务就创建一个线程,直到线程达到线程池的最大大小。线程池的大小一旦达到最大值就会保持不变,如果某个线程因为执行异常而结束,那么线程池会补充一个新线程。
  • newCachedThreadPool:创建一个可缓存的线程池。如果线程池的大小超过了处理任务所需要的线程,那么就会回收部分空闲(60秒不执行任务)的线程,当任务数增加时,此线程池又可以智能的添加新线程来处理任务。此线程池不会对线程池大小做限制,线程池大小完全依赖于操作系统(或者说JVM)能够创建的最大线程大小。
  • newScheduledThreadPool:创建一个大小无限的线程池。此线程池支持定时以及周期性执行任务的需求。
  • newSingleThreadExecutor:创建一个单线程的线程池。此线程池支持定时以及周期性执行任务的需求。

第60题的例子中演示了通过Executors工具类创建线程池并使用线程池执行线程的代码。如果希望在服务器上使用线程池,强烈建议使用newFixedThreadPool方法来创建线程池,这样能获得更好的性能。

相关文章

  • 线程池原理及实践

    向Doug Lea大佬致敬 什么是线程池 线程池(Thread Pool)是一种基于池化思想管理线程的工具 为什么...

  • 就简单记录一下——Java线程池

    线程池 1.什么是线程池 线程池(Thread Pool)帮我们重复管理线程,避免创建大量的线程增加开销。 2.为...

  • Java线程池实现原理及应用

    [toc] 概念 线程池是什么 线程池(Thread Pool)是一种基于池化思想管理线程的工具,经常出现在多线程...

  • Java线程池实现原理

    1背景 1.1 线程池是什么 线程池(Thread Pool)是一种基于池化思想管理线程的工具,经常出现在多线程服...

  • 什么是线程池(thread pool)?

    在面向对象编程中,创建和销毁对象是很费时间的,因为创建一个对象要获取内存资源或者其它更多资源。在Java中更是如此...

  • Java多线程 -- 06 线程组和线程池

    导读目录 线程组(ThreadGroup) 线程池(Thread Pool) Fork/Join框架和Execut...

  • AsyncTask源码分析

    两个线程池:ThreadPoolExecutor (THREAD_POOL_EXECUTOR) SerialEx...

  • 线程池(Thread Pool)

    什么是线程池? 一种线程的使用模式 创建多个线程放入池子(容器)里,需要的时候从池子里取出使用,不需要的时候则放回...

  • Java 线程池艺术探索

    关注我 线程池 Wiki 上是这样解释的:Thread Pool 作用:利用线程池可以大大减少在创建和销毁线程上所...

  • java 线程池设计模式

    java 线程池采用的是 Thread Pool 线程池模式。 线程池设计模式主要解决在资源有限的情况下为每一个任...

网友评论

      本文标题:什么是线程池(thread pool)?

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