博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【面试必备】简单了解下ExecutorService
阅读量:7167 次
发布时间:2019-06-29

本文共 676 字,大约阅读时间需要 2 分钟。

在Java 5之后,ExecutorService类被引入,主要是为了方便线程的统一管理。

ExecutorService的作用

ExecutorService其实是一个线程池,它可以接收任务,然后根据配置来分配线程,并控制其调度。

分类

newCacheThreadPool

  • 这种线程池是无界线程池,即它可以创建任意条线程。
  • 每次创建新线程时,先检查自己的缓存池中有没有,没有才会创建。
  • 它有默认的TimeOut(=60s),超过这个时长没活动的线程就会被自动的移除,所以完全不必要担心线程的结束问题。
  • 这是比较推荐的类型。

newFixedThreadPool

这个线程和newCacheThreadPool很类似,不同点在于:

  • 它有线程数量上限。
  • 它没有默认的TimeOut。

ScheduledThreadPool

  • 它可以按照顺序延迟调度线程。

SingleThreadPool

  • 它只有一条线程。
  • 感觉并没有多大用处。

ThreadPoolExecutor

这种类型的线程池可以自己配置相关参数。

参数 说明
corePoolSize 池中所保存的线程数,包括空闲线程。
maximumPoolSize 池中允许的最大线程数。’
keepAliveTime 当线程数大于核心时,此为终止多余的空闲等待新任务的线程的最长时间。
workQueue 执行前用于保持任务的队列。此队列仅保持由 execute 方法提交的 Runnable 任务。

转载于:https://juejin.im/post/5cdc18ad6fb9a032426522cc

你可能感兴趣的文章
Boost.Lockfree官方文档翻译
查看>>
shell一些笔记
查看>>
挨踢江湖之十二
查看>>
asp.net c# repeater或gridview导出EXCEL的详细代码。
查看>>
移植rtmpdump(librtmp)到android
查看>>
android应用程序fps meter[帧数显示]的分析 —— 浅谈root的风险 (1)
查看>>
技术人生:我为什么要坚持写博客
查看>>
Unable to start T-SQL Debugging. Could not connect to the computer ‘.’
查看>>
Windows蓝屏dump文件查看器(转)
查看>>
Java多线程-线程的同步(同步代码块)
查看>>
nyoj322 sort 归并排序,树状数组
查看>>
leetcode -- Partition List
查看>>
timerTask任务定时器
查看>>
leetcode -- Triangle
查看>>
【转载】给VM虚拟机增加硬盘容量
查看>>
中断描述符表(Interrupt Descriptor Table,IDT)
查看>>
机器学习
查看>>
.NET:异常处理的两条“黄金定律”,求批!
查看>>
二叉树的深度
查看>>
android:screenOrientation的说明
查看>>