数码控科技猎奇Iphone动漫星座游戏电竞lolcosplay王者荣耀攻略allcnewsBLOGNEWSBLOGASKBLOGBLOGZSK全部技术问答问答技术问答it问答代码软件新闻开发博客电脑/网络手机/数码笔记本电脑互联网操作系统软件硬件编程开发360产品资源分享电脑知识文档中心IT全部全部分类全部分类技术牛文全部分类教程最新网页制作cms教程平面设计媒体动画操作系统网站运营网络安全服务器教程数据库工具网络安全软件教学vbscript正则表达式javascript批处理更多»编程更新教程更新游戏更新allitnewsJava新闻网络医疗信息化安全创业站长电商科技访谈域名会议专栏创业动态融资创投创业学院 / 产品经理创业公司人物访谈营销开发数据库服务器系统虚拟化云计算嵌入式移动开发作业作业1常见软件all电脑网络手机数码生活游戏体育运动明星影音休闲爱好文化艺术社会民生教育科学医疗健康金融管理情感社交地区其他电脑互联网软件硬件编程开发360相关产品手机平板其他电子产品摄影器材360硬件通讯智能设备购物时尚生活常识美容塑身服装服饰出行旅游交通汽车购房置业家居装修美食烹饪单机电脑游戏网页游戏电视游戏桌游棋牌游戏手机游戏小游戏掌机游戏客户端游戏集体游戏其他游戏体育赛事篮球足球其他运动球类运动赛车健身运动运动用品影视娱乐人物音乐动漫摄影摄像收藏宠物幽默搞笑起名花鸟鱼虫茶艺彩票星座占卜书画美术舞蹈小说图书器乐声乐小品相声戏剧戏曲手工艺品历史话题时事政治就业职场军事国防节日风俗法律法规宗教礼仪礼节自然灾害360维权社会人物升学入学人文社科外语资格考试公务员留学出国家庭教育学习方法语文物理生物工程学农业数学化学健康知识心理健康孕育早教内科外科妇产科儿科皮肤科五官科男科整形中医药品传染科其他疾病医院两性肿瘤科创业投资企业管理财务税务银行股票金融理财基金债券保险贸易商务文书国民经济爱情婚姻家庭烦恼北京上海重庆天津黑龙江吉林辽宁河北内蒙古山西陕西宁夏甘肃青海新疆西藏四川贵州云南河南湖北湖南山东江苏浙江安徽江西福建广东广西海南香港澳门台湾海外地区

排列三缩水软件:Android之线程池ThreadPoolExecutor的简介

来源:脚本之家  责任编辑:小易  

河北20选五开奖结果 www.vhmyd.cn Android中的线程池ThreadPoolExecutor解决了单线程下载数据的效率慢和线程阻塞的的问题,它的应用也是优化实现的方式。所以它的重要性不言而喻,但是它的复杂性也大,理解上可能会有问题,不过作为安卓工程师,了解这个也是必然的。

ThreadPoolExecutor有几个构造函数,最多参数的构造函数最常用,下面会详细介绍各个参数的含义及其几个参数之间的关系:

<span style="font-size:18px;">ThreadPoolExecutor(corePoolSize, maximumPoolSize, keepAliveTime, unit, workQueue, threadFactory, handler)</span>

各个参数的含义:

corePoolSize: 核心线程数,能够同时执行的任务数量

maximumPoolSize:除去缓冲队列中等待的任务,最大能容纳的任务数(其实是包括了核心线程池数量)

keepAliveTime:超出workQueue的等待任务的存活时间maximumPoolSize放置的一个线程的存活时间

unit:时间单位

workQueue:阻塞等待线程的队列,一般使用new LinkedBlockingQueue<Runnable>()这个,如果不指定容量, 会一直往里边添加,没有限制,workQueue永远不会满;

threadFactory:创建线程的工厂,使用系统默认的类

handler:当任务数超过maximumPoolSize时,对任务的处理策略,默认策略是拒绝添加

需要注意的是这里的handler与安卓中的handler不同

执行流程:

当线程数小于corePoolSize时,每添加一个任务,则立即开启线程执行

当corePoolSize满的时候,后面添加的任务将放入缓冲队列workQueue等待;

当workQueue也满的时候,看是否超过maximumPoolSize线程数,如果超过,默认拒绝执行

总结来说:核心线程corePoolSize、任务队列workQueue、最大线程maximumPoolSize,如果三者都满了,使用handler处理被拒绝的任务。当一个线程的存活时间到达指定的存活时间索命该线程的任务已执行完,该线程的生命周期结束,被拒绝的线程可以重新进入线程池中开始任务,依次循环此过程。

举例说明:

假如:

corePoolSize=2,maximumPoolSize=3,workQueue容量为8;

最开始,执行的任务A,B,此时corePoolSize已用完,再次执行任务C,则C将被放入缓冲队列workQueue中等待着,如果后来又添加了7个任务,此时workQueue已满,则后面再来的任务的数量是5将会和maximumPoolSize比较,由于maximumPoolSize为3,所以只能容纳1个了,因为包含corePollSize个数,所以后面来的任务默认都会被拒绝4个。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。如果你想了解更多相关内容请查看下面相关链接

您可能感兴趣的文章:


  • 本文相关:
  • android之在linux终端执行shell脚本直接打印当前运行app的日志的实现方法
  • android java调用自己c++类库的实例讲解
  • android可自定义神奇动效的卡片切换视图实例
  • android添加音频的几种方法
  • android四大组件之activity详解
  • android四大组件之service详解
  • android四大组件之broadcastreceiver详解
  • spring线程池threadpoolexecutor配置并且得到任务执行的结果
  • 线程池threadpoolexecutor使用简介与方法实例
  • java自带定时任务scheduledthreadpoolexecutor实现定时器和延时加载功能
  • android设计模式之单例模式详解
  • android sd卡上文件操作及记录日志操作实例分析
  • android编程中关于单线程模型的理解与分析
  • android自定义view实现bmi指数条
  • android自定义view倒计时圆
  • android开源androidsidemenu实现抽屉和侧滑菜单
  • android自定义view之圆形进度条式按钮
  • android编程ui设计之gridview和imageview的用法
  • android编程实现3d立体旋转效果的实例代码
  • android实现微信朋友圈评论edittext效果
  • 免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 河北20选五开奖结果 - 频道导航
    Copyright © 2017 河北20选五开奖结果 www.vhmyd.cn All Rights Reserved
  • 一加手机5【报价 图片 参数 评测】 2019-03-25
  • 图解5G:开启万物互联  赋能数字经济 2019-03-25
  • (两会受权发布)第十三届全国人民代表大会八个专门委员会主任委员、副主任委员、委员名单 2019-03-25
  • 机场集团领导班子2017年度综合考核再获“好”等次 2019-03-24
  • 湿热天气毒蛇出没!蛇咋成了邪恶的化身? 2019-03-24
  • 【新时代 新作为 新篇章】陕西:“技术供给” 为“一带一路”建设注入科技力量 2019-03-24
  • 高清:探访苟坝见证历史 红军在此留下珍贵遗物 2019-03-23
  • 在深入推动长江经济带发展座谈会上的讲话 2019-03-23
  • 把环保责任镶嵌到组织管理架构中去 2019-03-22
  • 今年江西千万元公益金买服务 受益者将更广泛 2019-03-22
  • 您访问的页面找不回来了 2019-03-22
  • 特金明日将通电话 提醒谁莫忘感恩? (原创首发) 2019-03-21
  • 法制日报:别让世界杯激情冲淡守法意识 2019-03-21
  • [大笑]小撸的眼睛在滴血…… 2019-03-21
  • 浙江大学科研团队潜心十五载 飞机装配有了国产自动化设备 2019-03-21
  • 585| 250| 550| 300| 587| 592| 888| 922| 690| 630|