线程池相关
来源:互联网 发布:任我行软件txyapp 编辑:程序博客网 时间:2024/06/03 19:13
上图为线程池的处理流程原理。
提交任务有两种,执行execute和sumbit有返回future对象
Executor:是Java线程池的顶级接口
Executors:是一个类,提供了不同的静态方法。用于生成不同类型的线程池。
ThreadPoolExecutor的七个参数:
1.核心线程池的大小
2.最大线程池的大小
3.线程大于核心线程时。空闲任务等待分配任务的最长时间
4.这个时间的度量单位
5.保存任务的工作队列 不同线程池使用不同的阻塞队列
6.线程工厂
7.饱和策略
Executors产生的几种线程池
1.固定大小的线程池
newFixedThreadPool
public static ExecutorService newFixedThreadPool(int nThreads) { return new ThreadPoolExecutor(nThreads, nThreads, 0L, TimeUnit.MILLISECONDS, new LinkedBlockingQueue<Runnable>()); }
2.单线程的线程池
public static ExecutorService newSingleThreadExecutor() { return new FinalizableDelegatedExecutorService (new ThreadPoolExecutor(1, 1, 0L, TimeUnit.MILLISECONDS, new LinkedBlockingQueue<Runnable>())); }3.大小可变无界的线程池
public static ExecutorService newCachedThreadPool(ThreadFactory threadFactory) { return new ThreadPoolExecutor(0, Integer.MAX_VALUE, 60L, TimeUnit.SECONDS, new SynchronousQueue<Runnable>(), threadFactory); }
4.可延迟的线程池
public ScheduledThreadPoolExecutor(int corePoolSize, ThreadFactory threadFactory) { super(corePoolSize, Integer.MAX_VALUE, 0, TimeUnit.NANOSECONDS, new DelayedWorkQueue(), threadFactory); }
J.U.C包中几种BlockingQueue队列:
1.ArrayBlockingQueue:
数组支持的有界队列,按照先进先出的顺序排列。需指定最大容量和是否为公平锁。不会自己扩容,默认非公平锁。
2.DelayQueue:ScheduledThreadPoolExecutor
是一个无界阻塞队列,只有延期满了才能从中提取元素。(支付项目)
3.LinkedBlockingDeque:
一个阻塞双端队列,可指定容量
4.LinkedBlockinQueue newSingleThreadExecutor newFixedThreadPool
一个基于链表的阻塞队列,吞吐量要低于ArrayBlockingQueue
5.PriorityBlockingQueue:
一个无界阻塞队列。逻辑上无界,资源耗尽 add也会失败 不允许null
6.sysnchronousQueue: newCachedThreadPool
一种阻塞队列,每个插入必须等待另一个线程对应的移除。
0 0
- Android线程,线程池相关
- CSDN线程池相关
- 线程池相关链接
- 线程池相关
- Windows线程池相关
- 线程池相关技术
- 线程池相关
- Java线程池相关
- 线程池相关
- 线程池相关
- 线程池相关
- 线程池相关介绍
- 线程池相关总结
- 线程池相关基础知识
- java 线程池相关
- Java线程池相关
- java线程池相关
- java线程池相关概念
- java 操作mongodb 聚合函数
- SSM搭建-Mybatis多参数查询与列表查询不同方式实现(18)
- c语言结构体
- Elasticsearch初步使用(安装、Head配置、分词器配置)
- bzoj3208 花神的秒题计划Ⅰ
- 线程池相关
- Vorinoi图简介
- HDU2066一个人的旅行
- sharedpreferences存储数据
- Java简单输入&通过控制台输入相关指令,输出System类, RunTime类相关方法返回信息
- Wifi 的Log分析
- SQL Having的用法
- NOIP2012复赛提高组day2(A:同余方程 B:借教室 C:疫情控制)
- poj_2002 Squares(哈希)