| 
JavaTM 2 Platform Standard Ed. 5.0  | 
|||||||||
| 上一个类 下一个类 | 框架 无框架 | |||||||||
| 摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 | |||||||||
public interface ScheduledExecutorService
一个 ExecutorService,可安排在给定的延迟后运行或定期执行的命令。 
schedule 方法使用各种延迟创建任务,并返回一个可用于取消或检查执行的任务对象。scheduleAtFixedRate 和 scheduleWithFixedDelay 方法创建并执行某些在取消前一直定期运行的任务。
 用 Executor.execute(java.lang.Runnable) 和 ExecutorService 的 submit 方法所提交的命令,通过所请求的 0 延迟进行安排。schedule 方法中允许出现 0 和负数延迟(但不是周期),并将这些视为一种立即执行的请求。
所有的 schedule 方法都接受相对 延迟和周期作为参数,而不是绝对的时间或日期。将以 Date 所表示的绝对时间转换成要求的形式很容易。例如,要安排在某个以后的日期运行,可以使用:schedule(task, date.getTime() - System.currentTimeMillis(), TimeUnit.MILLISECONDS)。但是要注意,由于网络时间同步协议、时钟漂移或其他因素的存在,因此相对延迟的期满日期不必与启用任务的当前 Date 相符。
Executors 类为此包中所提供的 ScheduledExecutorService 实现提供了便捷的工厂方法。
 import static java.util.concurrent.TimeUnit.*;
 class BeeperControl {
    private final ScheduledExecutorService scheduler = 
       Executors.newScheduledThreadPool(1);
    public void beepForAnHour() {
        final Runnable beeper = new Runnable() {
                public void run() { System.out.println("beep"); }
            };
        final ScheduledFuture<?> beeperHandle = 
            scheduler.scheduleAtFixedRate(beeper, 10, 10, SECONDS);
        scheduler.schedule(new Runnable() {
                public void run() { beeperHandle.cancel(true); }
            }, 60 * 60, SECONDS);
    }
 }
 
| 方法摘要 | ||
|---|---|---|
 | 
schedule(Callable<V> callable,
         long delay,
         TimeUnit unit)
创建并执行在给定延迟后启用的 ScheduledFuture。  | 
|
 ScheduledFuture<?> | 
schedule(Runnable command,
         long delay,
         TimeUnit unit)
创建并执行在给定延迟后启用的一次性操作。  | 
|
 ScheduledFuture<?> | 
scheduleAtFixedRate(Runnable command,
                    long initialDelay,
                    long period,
                    TimeUnit unit)
创建并执行一个在给定初始延迟后首次启用的定期操作,后续操作具有给定的周期;也就是将在 initialDelay 后开始执行,然后在 initialDelay+period 后执行,接着在 initialDelay + 2 * period 后执行,依此类推。  | 
|
 ScheduledFuture<?> | 
scheduleWithFixedDelay(Runnable command,
                       long initialDelay,
                       long delay,
                       TimeUnit unit)
创建并执行一个在给定初始延迟后首次启用的定期操作,随后,在每一次执行终止和下一次执行开始之间都存在给定的延迟。  | 
|
| 从接口 java.util.concurrent.ExecutorService 继承的方法 | 
|---|
awaitTermination, invokeAll, invokeAll, invokeAny, invokeAny, isShutdown, isTerminated, shutdown, shutdownNow, submit, submit, submit | 
| 从接口 java.util.concurrent.Executor 继承的方法 | 
|---|
execute | 
| 方法详细信息 | 
|---|
ScheduledFuture<?> schedule(Runnable command,
                            long delay,
                            TimeUnit unit)
command - 要执行的任务。delay - 从现在开始延迟执行的时间。unit - 延迟参数的时间单位。
RejectedExecutionException - 如果无法安排执行该任务。
NullPointerException - 如果 command 为 null。
<V> ScheduledFuture<V> schedule(Callable<V> callable,
                                long delay,
                                TimeUnit unit)
callable - 要执行的功能。delay - 从现在开始延迟执行的时间。unit - 延迟参数的时间单位。
RejectedExecutionException - 如果无法安排执行该任务。
NullPointerException - 如果 callable 为 null。
ScheduledFuture<?> scheduleAtFixedRate(Runnable command,
                                       long initialDelay,
                                       long period,
                                       TimeUnit unit)
command - 要执行的任务。initialDelay - 首次执行的延迟时间。period - 连续执行之间的周期。unit - initialDelay 和 period 参数的时间单位。
RejectedExecutionException - 如果无法安排执行该任务。
NullPointerException - 如果 command 为 null。
IllegalArgumentException - 如果 period 小于或等于 0。
ScheduledFuture<?> scheduleWithFixedDelay(Runnable command,
                                          long initialDelay,
                                          long delay,
                                          TimeUnit unit)
command - 要执行的任务。initialDelay - 首次执行的延迟时间。delay - 一次执行终止和下一次执行开始之间的延迟。unit - initialDelay 和 delay 参数的时间单位。
RejectedExecutionException - 如果无法安排执行该任务。
NullPointerException - 如果 command 为 null。
IllegalArgumentException - 如果 delay 小于或等于 0。
  | 
JavaTM 2 Platform Standard Ed. 5.0  | 
|||||||||
| 上一个类 下一个类 | 框架 无框架 | |||||||||
| 摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 | |||||||||
版权所有 2004 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策。