---------------------- ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------
1、Executors类
Java.util.concurrent.Executors
Public class Executors extendsObject 此包中所定义的Executor、ExecutorService、ScheduledExecutorService、ThreadFactory 和 Callable 类的工厂和实用方法。此类支持以下各种方法:
- 创建并返回设置有常用配置字符串的 ExecutorService 的方法。
- 创建并返回设置有常用配置字符串的 ScheduledExecutorService 的方法。
- 创建并返回“包装的”ExecutorService 方法,它通过使特定于实现的方法不可访问来禁用重新配置。
- 创建并返回 ThreadFactory 的方法,它可将新创建的线程设置为已知的状态。
- 创建并返回非闭包形式的 Callable 的方法,这样可将其用于需要 Callable 的执行方法中。
从以下版本开始:
1.5
2、接口 ScheduledExecutorService
所有超级接口:
所有已知实现类:
public interface ScheduledExecutorService
extends ExecutorService
一个 ExecutorService
,可安排在给定的延迟后运行或定期执行的命令。
schedule 方法使用各种延迟创建任务,并返回一个可用于取消或检查执行的任务对象。scheduleAtFixedRate 和scheduleWithFixedDelay 方法创建并执行某些在取消前一直定期运行的任务。
用 Executor.execute(java.lang.Runnable)
和ExecutorService
的submit 方法所提交的命令,通过所请求的 0 延迟进行安排。schedule 方法中允许出现 0 和负数延迟(但不是周期),并将这些视为一种立即执行的请求。
所有的 schedule 方法都接受相对 延迟和周期作为参数,而不是绝对的时间或日期。将以Date
所表示的绝对时间转换成要求的形式很容易。例如,要安排在某个以后的Date 运行,可以使用:schedule(task, date.getTime() - System.currentTimeMillis(),TimeUnit.MILLISECONDS)。但是要注意,由于网络时间同步协议、时钟漂移或其他因素的存在,因此相对延迟的期满日期不必与启用任务的当前Date 相符。 Executors
类为此包中所提供的 ScheduledExecutorService 实现提供了便捷的工厂方法。
3、scheduleWithFixedDelay
public ScheduledFuture<?> scheduleWithFixedDelay(Runnable command,
long initialDelay,
long delay,
TimeUnit unit)
从接口 ScheduledExecutorService复制的描述
创建并执行一个在给定初始延迟后首次启用的定期操作,随后,在每一次执行终止和下一次执行开始之间都存在给定的延迟。如果任务的任一执行遇到异常,就会取消后续执行。否则,只能通过执行程序的取消或终止方法来终止该任务。
指定者:
接口 ScheduledExecutorService 中的scheduleWithFixedDelay
参数:
command - 要执行的任务
initialDelay - 首次执行的延迟时间
delay - 一次执行终止和下一次执行开始之间的延迟
unit -initialDelay 和 delay 参数的时间单位
返回:
表示挂起任务完成的ScheduledFuture,并且其 get() 方法在取消后将抛出异常
4、execute
public void execute(Runnable command)
使用所要求的零延迟执行命令。这在效果上等同于调用 schedule(command, 0, anyUnit)。注意,对由shutdownNow 所返回的队列和列表的检查将访问零延迟的ScheduledFuture,而不是 command 本身。
指定者:
覆盖:
类 ThreadPoolExecutor 中的execute
参数:
command - 要执行的任务。
抛出:
由 -RejectedExecutionHandler 随意决定的RejectedExecutionException,如果由于执行程序已关闭而无法接受要执行的任务 。
NullPointerException - 如果 command 为 null。
---------------------- ASP.Net+Android+IOS开发、 .Net培训、期待与您交流! ----------------------
详细请查看:http://edu.csdn.net