笔记本显卡排行榜-hide exe

scheduledtask
2023年4月1日发(作者:安卓怎么清理内存)

ScheduledExecutorService

2010-10-0516:48:14|分类:JAVA执行器|标签:|字号大中小订阅

ScheduledExecutorService

所有超级接口:

Executor,ExecutorService

所有已知实现类:

ScheduledThreadPoolExecutor

publicinterfaceScheduledExecutorService

extendsExecutorService

ScheduledExecutorService是一个ExecutorService,但是可安排在给定的延迟后运行或定期执行的命令。

schedule方法使用各种延迟创建任务,并返回一个可用于取消或检查执行的任务的ScheduledFuture对象。

scheduleAtFixedRate和scheduleWithFixedDelay方法创建并执行某些在取消前一直定期运行的任务。

用e(le)和ExecutorService的submit方法所提交的命令,通过所请求的0延迟进行安排。

schedule方法中允许出现0和负数延迟(但不是周期),并将这些视为是立即执行的请求。

所有的schedule方法都接受相对延迟和周期作为参数,而不是绝对的时间或日期。

将以Date所表示的绝对时间转换成要求的形式很容易。例如,要安排在某个以后的Date运行,

可以使用:schedule(task,e()-tTimeMillis(),ECONDS)。

但是要注意,由于网络时间同步协议、时钟漂移或其他因素的存在,因此相对延迟的期满日期不必与启用任务的当前Date相符。

Executors类为此包中所提供的ScheduledExecutorService实现提供了便捷的工厂方法。

注意1:它只有一个实现类ScheduledThreadPoolExecutor。

关于ScheduledThreadPoolExecutor的更多内容请参考《ScheduledThreadPoolExecutor》

用法示例

以下是一个带方法的类,它设置了ScheduledExecutorService,在1小时内每10秒钟蜂鸣一次:

it.*;

classBeeperControl{

privatefinalScheduledExecutorServicescheduler=

eduledThreadPool(1);

publicvoidbeepForAnHour(){

finalRunnablebeeper=newRunnable(){

publicvoidrun(){n("beep");

};

finalScheduledFuturebeeperHandle=

leAtFixedRate(beeper,10,10,SECONDS);

le(newRunnable(){

publicvoidrun(){(true);}

},60*60,SECONDS);

}

}}

主要方法:

ScheduledFuture<?>schedule(Runnablecommand,

longdelay,

TimeUnitunit)

创建并执行在给定延迟后启用的一次性操作。

参数:

command-要执行的任务

delay-从现在开始延迟执行的时间

unit-延迟参数的时间单位

返回:

表示挂起任务完成的ScheduledFuture,并且其get()方法在完成后将返回null

抛出:

RejectedExecutionException-如果无法安排执行该任务

NullPointerException-如果command为null

ScheduledFutureschedule(Callablecallable,

longdelay,

TimeUnitunit)

创建并执行在给定延迟后启用的ScheduledFuture。

参数:

callable-要执行的功能

delay-从现在开始延迟执行的时间

unit-延迟参数的时间单位

返回:

可用于提取结果或取消的ScheduledFuture

抛出:

RejectedExecutionException-如果无法安排执行该任务

NullPointerException-如果callable为null

ScheduledFuture<?>scheduleAtFixedRate(Runnablecommand,

longinitialDelay,

longperiod,

TimeUnitunit)

创建并执行一个在给定初始延迟后首次启用的定期操作,后续操作具有给定的周期;也就是将在initialDelay后开始执行,然后

在initialDelay+period后执行,接着在initialDelay+2*period后执行,依此类推。如果任务的任何一个执行遇到异常,则后续执行都会被取消。

否则,只能通过执行程序的取消或终止方法来终止该任务。如果此任务的任何一个执行要花费比其周期更长的时间,则将推迟后续执行,但不会同

时执行。

参数:

command-要执行的任务

initialDelay-首次执行的延迟时间

period-连续执行之间的周期

unit-initialDelay和period参数的时间单位

返回:

表示挂起任务完成的ScheduledFuture,并且其get()方法在取消后将抛出异常

抛出:

RejectedExecutionException-如果无法安排执行该任务

NullPointerException-如果command为null

IllegalArgumentException-如果period小于等于0

ScheduledFuture<?>scheduleWithFixedDelay(Runnablecommand,

longinitialDelay,

longdelay,

TimeUnitunit)

创建并执行一个在给定初始延迟后首次启用的定期操作,随后,在每一次执行终止和下一次执行开始之间都存在给定的延迟。

如果任务的任一执行遇到异常,就会取消后续执行。否则,只能通过执行程序的取消或终止方法来终止该任务。

参数:

command-要执行的任务

initialDelay-首次执行的延迟时间

delay-一次执行终止和下一次执行开始之间的延迟

unit-initialDelay和delay参数的时间单位

返回:

表示挂起任务完成的ScheduledFuture,并且其get()方法在取消后将抛出异常

抛出:

RejectedExecutionException-如果无法安排执行该任务

NullPointerException-如果command为null。

IllegalArgumentException-如果delay小于等于0

更多推荐

scheduledtask