常见线程池

1、newSingleThreadExecutor

创建一个单线程化的线程池,它只会用唯一的工作线程来执行任务,保证所有任务按照指定顺序(FIFO, LIFO, 优先级)执行。

从构造方法来看,它可以单独执行,也可以与周期线程池结合用。其任务队列是LinkedBlockingQueue,这是个无界的阻塞队列,因为线程池里只有一个线程,就确保所有的任务都在同一个线程中顺序执行,这样就不需要处理线程同步的问题。这类线程池适用于多个任务顺序执行的场景。

2、newFixedThreadPool

创建一个定长线程池,可控制线程最大并发数,超出的线程会在队列中等待。

一个固定大小的线程池,可以用于已知并发压力的情况下,对线程数做限制。

这类线程池的特点就是里面全是核心线程,没有非核心线程,也没有超时机制,任务大小也是没有限制的,数量固定,即使是空闲状态,线程不会被回收,除非线程池被关闭,从构造方法也可以看出来,只有两个参数,一个是指定的核心线程数,一个是线程工厂,keepAliveTime无效。任务队列采用了无界的阻塞队列LinkedBlockingQueue,执行execute方法的时候,运行的线程没有达到corePoolSize就创建核心线程执行任务,否则就阻塞在任务队列中,有空闲线程的时候去取任务执行。由于该线程池线程数固定,且不被回收,线程与线程池的生命周期同步,所以适用于任务量比较固定但耗时长的任务。

3、newCache

UNIX(多线程):22---几种常见的线程池相关推荐

  1. Executor框架、ThreadPoolExecutor、3种常见的线程池

    参考:https://blog.csdn.net/javazejian/article/details/50890554 1. Executor框架 为什么需要线程池? 在java中,使用线程来执行异 ...

  2. 几种常见的线程池及使用场景

    为什么要使用线程池? 创建线程和销毁线程的花销是比较大的,这些时间有可能比处理业务的时间还要长.这样频繁的创建线程和销毁线程,再加上业务工作线程,消耗系统资源的时间,可能导致系统资源不足.(我们可以把 ...

  3. Java多线程学习七:线程池的 4 种拒绝策略和 6 种常见的线程池

    以便在必要的时候按照我们的策略来拒绝任务,那么拒绝任务的时机是什么呢?线程池会在以下两种情况下会拒绝新提交的任务. 第一种情况是当我们调用 shutdown 等方法关闭线程池后,即便此时可能线程池内部 ...

  4. Java之ThreadPoolExcutor和四种常见的线程池

    一.ThreadPoolExcutors的作用 java提供了ThreadPoolExcutors来创建一个线程池,我们为什么要用线程池呢? 1.降低资源的消耗:通过重复利用已经创建好的线程降低线程的 ...

  5. 【74期】面试官:对多线程熟悉吗,来谈谈线程池的好处?

    程序员的成长之路 互联网/程序员/技术/资料共享 关注 阅读本文大概需要 6.5 分钟. 来自:blog.csdn.net/fengye454545/article/details/79536986 ...

  6. iOS多线程全套:线程生命周期,多线程的四种解决方案,线程安全问题,GCD的使用,NSOperation的使用(上)

    2017-07-08 remember17 Cocoa开发者社区 目的 本文主要是分享iOS多线程的相关内容,为了更系统的讲解,将分为以下7个方面来展开描述. 多线程的基本概念 线程的状态与生命周期 ...

  7. 多线程-使用大全 基础使用 / 锁 / 线程池 / 原子类 / 并发包 / CAS / AQS (2022版)

    一.多线程描述 1.什么是cpu CPU的中文名称是中央处理器,是进行逻辑运算用的主要由运算器.控制器.寄存器三部分组成, 运算器:从字面意思看就是运算就是起着运算的作用, 控制器:就是负责发出cpu ...

  8. Android 多线程实现异步执行demo,线程池使用demo

    方法1: 1.常见Runnable对象设置同步代码run运行体 class AutoSaleTicket implements Runnable {private int ticket = 20;pu ...

  9. Java常见的线程池有哪些?

    1.什么是线程池 java.util.concurrent.Executors提供了一个 java.util.concurrent.Executor接口的实现用于创建线程池 多线程技术主要解决处理器单 ...

最新文章

  1. 零起点学算法01——第一个程序Hello World!
  2. python的特点和优点-【Python面试】 Python 的特点和优点是什么?
  3. 科大星云诗社动态20201216
  4. Galaxy+note3+android+5.0,5.9寸+Android 5.0 Galaxy Note 4参数曝光
  5. ios8改变statusBar字体的显示颜色
  6. 关于MySQL内存泄露如何排查的一些思路
  7. java基线_基线的概念-------权威
  8. NHibernate学习总结:(一)NHibernate的使用和配置
  9. hadoop 分布式切换为伪分布式(单机)
  10. Sampling-Argmax:用重参数技巧优化Soft-Argmax
  11. wordpress 关于裁剪图片错误问题
  12. 这40份酷炫的 Python 可视化大屏,简直太爱了
  13. win7如何修复wmi服务器,WMI服务是什么?Win7系统禁用WMI服务的方法
  14. html渐变做一个彩虹,ps渐变工具:制作七色彩虹特效
  15. 调整csgo画面显示FPS值
  16. html 下拉框 value值,HTML Select value用法及代码示例
  17. python去除图片马赛克_python 检测图片是否有马赛克
  18. 阿里云购买域名并备案
  19. 小饶学编程之JAVA EE第三部分——前端框架:1LayUI
  20. linux shadow文件*,Linux怎么查找shadow文件进入这样几步轻松搞定

热门文章

  1. 一个cube的大小位置方向不断和另一个cube重合
  2. eventfd man
  3. 全志A20单独烧录内核
  4. Asterisk 学习进阶 2
  5. 如何使用autotools工具
  6. 简述TCP/IP四层体系结构及每层作用
  7. winCE下Unicode编码
  8. 统计个人已完成的工作量_团队工作量及团队价值贡献统计、核算、评审及提升的重要性...
  9. 在内存中建立文件_磁盘与文件,搞懂它
  10. java 录音_用JAVA实现不限时录音功能