文档章节

线程池原理

newworld2010
 newworld2010
发布于 2016/10/07 09:52
字数 261
阅读 34
收藏 0

行业解决方案、产品招募中!想赚钱就来传!>>>

线程池优势

    1. 减少资源消耗: 降低线程的重复创建和销毁频率

    2. 提高业务的响应时间: 请求到服务后,有待用线程直接处理业务,省略创建和销毁过程

    3. 便于管理:由线程管理器统一管理线程的创建,销毁和检测工作,保证线程池的大小保持在合理区间,而不会无上限,导致资源浪费

线程池常用工具类

   1. ThreadPoolExecutor

        涉及到的操作方法

        创建单例线程 : newSingleThreadExecutor()    

                内部队列由 LinkedBlockingQueue 阻塞队列实现任务缓存  

                LinkedBlockingQueue 根据 ReentrantLock 重入锁实现线程通信和阻塞

        创建固定数量的线程: newFixedThreadExecutor(10)   

               内部队列由 LinkedBlockingQueue 阻塞队列实现任务缓存

               LinkedBlockingQueue 根据 ReentrantLock 重入锁实现线程通信和阻塞

        根据请求创建线程,本身没有缓存任务: newCachedThreadExecutor() 

               内部由synchronousQueue实现内部没有容量的队列

   2. ScheduledThreadPoolExecutor 固定线程

   3. FutureTask

      

newworld2010
粉丝 4
博文 35
码字总数 2831
作品 0
东城
高级程序员
私信 提问
加载中
请先登录后再评论。

暂无文章

如何在Android中以像素为单位获取屏幕尺寸 - How to get screen dimensions as pixels in Android

问题: I created some custom elements, and I want to programmatically place them to the upper right corner ( n pixels from the top edge and m pixels from the right edge). 我创建......

javail
56分钟前
7
0
如何在不安装Microsoft Office的情况下用C#创建Excel(.XLS和.XLSX)文件?

问题: 如何在不使用运行代码的计算机上安装Excel的情况下使用C#创建Excel电子表格? 解决方案: 参考一: https://stackoom.com/question/dHZ/如何在不安装Microsoft-Office的情况下用C-创...

技术盛宴
今天
7
0
如何使用pip升级所有Python软件包? - How to upgrade all Python packages with pip?

问题: Is it possible to upgrade all Python packages at one time with pip ? 是否可以通过pip一次升级所有Python软件包? Note : that there is a feature request for this on the off......

法国红酒甜
今天
21
0
活体检测+合成图鉴别面前,人脸“照片活化”黑产攻击一秒被擒

本文作者:y****n 如今,随着人脸技术的日趋成熟,新兴娱乐文化得到了极大的推动,尤其是随着 DeepFake、FaceSwap 等人脸编辑及生成技术的发展,虚拟主播、人脸合成带给人们全新的体验,但同...

百度开发者中心
昨天
12
0
如何在SQL Server中将多行文本合并为单个文本字符串?

问题: Consider a database table holding names, with three rows: 考虑一个包含名称的数据库表,该表具有三行: PeterPaulMary Is there an easy way to turn this into a single str......

富含淀粉
今天
19
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部