博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android中级第八讲--安卓子线程,以及定时任务使用讲解
阅读量:4984 次
发布时间:2019-06-12

本文共 1525 字,大约阅读时间需要 5 分钟。

博客出自:,转载注明出处! All Rights Reserved ! 

今天我们讲一下关于子线程,以及定时任务的几个类。

ScheduledExecutorService:

command:执行的功能;delay:多长时间后执行;unit:delay的单位,一般是TimeUnit.SECONDS(秒);

 schedule( command,long delay, unit)方法:一次性事件,几秒后执行该功能

initialDelay:多少时间后;period:执行持续时间

scheduleAtFixedRate(Runnable command,long initialDelay,long period,TimeUnit unit):

循环执行功能:过initialDelay+n*period后执行,不规律

scheduleWithFixedDelay(Runnable command,long initialDelay,long delay,TimeUnit unit):

循环执行功能:过initialDelay+delay后执行,有规律

但也可以控制有多少个线程进行循环,通过 Executors.newScheduledThreadPool(10);方法控制。

可以通过shutdown方法来关闭循环

Timer:

timer.schedule(task, when)

timer可以定义几点或当前时间执行task

timer可以定义几点或当前时间后延迟多久执行task

同时timer还具有ScheduledExecutorService的后两个方法

可以通过cancel方法来关闭timer

ThreadPoolExecutor:

ThreadPoolExecutor(corePoolSize, maximumPoolSize, keepAliveTime, unit, workQueue, handler)

corePoolSize: 线程池维护线程的最少数量
maximumPoolSize:线程池维护线程的最大数量
keepAliveTime: 线程池维护线程所允许的空闲时间
unit:    线程池维护线程所允许的空闲时间的单位
workQueue: 线程池所使用的缓冲队列
handler: 线程池对拒绝任务的处理策略

通过threadPoolExecutor.execute(runnable);方法加入要执行的线程

当workQueue的线程多于最大数量时,使用handler来处理被拒绝任务,通常有四个选择:
ThreadPoolExecutor.AbortPolicy():抛出java.util.concurrent.RejectedExecutionException异常
ThreadPoolExecutor.CallerRunsPolicy():重试添加当前的任务,他会自动重复调用execute()方法
ThreadPoolExecutor.DiscardOldestPolicy():抛弃旧的任务
ThreadPoolExecutor.DiscardPolicy():抛弃当前的任务

记得一点runnable接口里面的内容总会执行完的。

其他:

用handler和thread来新开线程,分提主线程的负担,也可以使用runOnUiThread(action) 来代替。

今天先介绍到这儿,感觉很郁闷,大家宅的时间太久了,要找朋友出去Happy一下了!

 

转载于:https://www.cnblogs.com/xinyuyuanm/archive/2013/03/24/2979568.html

你可能感兴趣的文章
java基础二 分支循环
查看>>
python--002--数据类型(list、tuple)
查看>>
把近期的小错误整理一下
查看>>
动态规划 —— 背包问题一 专项研究学习
查看>>
51nod 1571 最近等对 | 线段树 离线
查看>>
关于parseInt的看法
查看>>
从用户端到后台系统,严选分销教会我这些事
查看>>
数据分析融入至BI工具的新思路
查看>>
c#必会知识点
查看>>
网页使用MD5加密
查看>>
JS 基础
查看>>
HBase shell 中的十六进制数值表示
查看>>
Python3 中 configparser 模块解析配置的用法详解
查看>>
新手android环境搭建、debug调试及各种插件安装__图文全解
查看>>
未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0”提供程序 win2008R2 X64 IIS7.5
查看>>
Diffuse贴图+Lightmap+Ambient
查看>>
矩阵树定理
查看>>
[算法]Evaluate Reverse Polish Notation
查看>>
go语言之进阶篇接口的定义和实现以及接口的继承
查看>>
SmartPhone手机网站的制作
查看>>