scheduleWithFixedDelay(command: Runnable, initialDelay: Long, delay: Long, unit: TimeUnit)
创建并执行一个在给定初始延迟后首次启用的定期操作;
随后,在每一次执行终止和下一次执行开始之间都存在给定的延迟。
如果任务的任一执行遇到异常,就会取消后续执行。
否则,只能通过执行程序的取消或终止方法来终止该任务。
参数:
command
- 要执行的任务
initialDelay
- 首次执行的延迟时间
delay
- 循环执行的延迟时间
unit
- initialDelay 和 delay 的时间单位
TimeUnit 为时间的单位
TimeUnit.MILLISECONDS //以毫秒为单位
TimeUnit.SECONDS //以秒为单位
枚举常量:
- DAYS
- HOURS
- MINUTES
- SECONDS
- MILLISECONDS
- MICROSECONDS
- NANOSECONDS
KOTLIN:
class Test {
val sPool = Executors.newScheduledThreadPool(2)!! //2个线程
init {
sPool.scheduleWithFixedDelay(taskOne,1000,1000, TimeUnit.MILLISECONDS)
sPool.scheduleWithFixedDelay(taskTwo,1500,1500, TimeUnit.MILLISECONDS)
}
val taskOne = object : TimerTask() {
override fun run() {
Log.i("Main", "taskOne")
}
}
val taskTwo = object : TimerTask() {
override fun run() {
Log.i("Main", "taskTwo")
}
}
PS:自用的 不做解释 作者:一个吃货帅锅