20170606
来源:互联网 发布:软件研发立项报告 编辑:程序博客网 时间:2024/06/15 23:25
1 线程池研究
什么是线程池?一组线程定时处于休眠状态,等待唤醒执行,
一减少在线程启动和销毁时的开销
二将当前任务和主线程隔离,能实现和主线程的异步执行
1.1 executors的api介绍
java类库提供了几种静态方法来创建一个线程池
a newFixedThreadPool 创建一个固定长度的线程池,当达到线程池最大数量时,现成的规模将不在变化。
fixedThreadPool会使用一个固定的数目 线程来处理若干数目的县城人物,它最多线程的数目是固定的
b newCachedThreadPool 创建一个可缓存的线程池,如果当前线程池的规模超出了处理需求,将回收空的线程,当需求增加时,会增加线程数量,线程池规模无限制,默认销毁线程时长60秒
适合于短时间多次运行的线程,cachedThreadPool首先根据需要创建足够多的线程,当有些线程被回收了,才会停止创建
shutdown() 方法指执行完所有线程后销毁线程
shutdownnow 指直接结束所有线程
另注意:
1主线程结束后,线程池可能还会继续运行
2放入线程池中的人物并不一定会按顺序运行
c newSingleThreadPool创建一个单线程的Executor,确保任务对了,顺序执行d newScheduleThreadPool 创建一个固定长度的线程池,而且以延迟或者定时的方式来执行,类似Timer四种ThreadPool都是调用了ThreadPoolExecutor来创建的ThreadPoolExecutor总结有新线程进入线程池中时1当运行线程数小于核心线程数时,直接把线程加入执行队列2当运行线程数大于等于核心线程数,且缓冲队列未满的情况下,加入缓冲队列3当运行线程数大于等于核心线程数,且缓冲队列已满而且运行线程数小于最大线程数时,添加新的运行线程4当以上条件都不满足,拒绝执行
阅读全文
0 0
- 20170606
- 记录昨天20170606
- maven学习笔记:20170606
- Examnation 20170606 T2 prob
- 20170606学习笔记整理
- 面试经验20170606
- 日常训练 20170606 魔法手镯
- 20170606_WPSC++实习_HR面
- 日常训练 20170606 极地旅行社
- 20170606组队赛比赛总结
- python爬网站20170606(re,write,urlopen)
- 20170606-leetcode-581-Shortest Unsorted Continuous Subarray
- 20170606_NULL和nullptr的区别与联系
- CSDN日报20170606 ——《程序员,你得多读书了!》
- 简单的分页方法page-taglib
- 安卓icon
- Makefile中命令前的@和-符号
- 20170605
- 最长递增子序列
- 20170606
- 深入剖析Android音频(三)AudioPolicyService
- Unity C# 连接SQL Server数据库,实现获取和添加登录注册的用户列表
- 20170607
- Linux入门:信号(二)——阻塞信号
- [LeetCode] Unique Substrings in Wraparound String
- c3新增表单属性
- 有意思的文献
- Struts2类型转换和自定义类型