亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

線程池ThreadPoorExector

標簽:
Android

!通过阅读Android开发艺术探索整理

常用构造方法:

[代码]java代码:

?

1public ThreadPoorExecutor(int corePoorSize,int maximumPoorSize,long keepAliveTime,TimeUnit unit,BlockingQuene <runnable> workQuene,ThreadFactory threadFactory)</runnable>


corePoorSize:核心线程数,即使闲置也会一直存活。配合allowCoreTreadTimeOut与keepAliveTime可指定闲置时的超时时长

maximumPoorSize:线程池所能容纳的最大线程数量,超过后,后续任务将阻塞

keepAliveTime:非核心线程的闲置超时时长

unit:超时时间单位,枚举类型

workQuene:任务队列,存储通过excutor提交的Runnable对象

threadFactory:接口,new Thread(Runnable) 提供创建新线程的功能

RejectedExecutionHandler:不常用,当线程无法执行新任务时会调用handler.rejectedExecution通知调用者

执行任务时的规则:

线程数量未达到核心线程数,直接启动一个核心线程

线程数量已经或超过核心线程数量,任务会插入到任务队列中等待

由于任务队列已满,无法将任务插入到任务队列,如果线程数量未达到线程池最大值,启动非核心线程执行任务

线程数量已达到最大值,拒绝执行任务

常见四大分类:

Cached:只有非核心线程,线程数最大为Integer.MAX_VALUE。闲置线程超时时间为60s。所有线程都活动时会创建新线程,否则使用闲置的,适合大量且耗时较少任务

Fixed :任务队列没有限制,没有超时机制,空闲时不会被回收,除非线程池被关闭。所有线程都活动时新任务会等待,只有核心线程,线程数量固定

Scheduled:核心线程数固定,线程数量不固定,非核心线程闲置时立即回收。适合周期、定时任务。

SingleThread:只有一个核心线程,所有任务在同一线程中按顺序执行。统一所有外界任务到同一个线程

任务提交方法:execute(Runnable)

引申一个面试题:主线程开启一个线程池,只有一个核心线程,多次循环、只创建一个Runnable,Runnable是否会多次执行?

以下内容来源于高手解答:

答案是会多次执行。

1.Runnable只是接口,封装线程待执行的代码

2.执行时间与执行次数与线程有关,与Runnable无关

3.Runnable可以N次执行,即使限定线程池最大数也可以重复执行


原文链接:http://www.apkbus.com/blog-35555-68771.html

點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消