1、Runnable接口与Callable接口
(1)Runnable接口
//Runnable接口的唯一方法,无返回值,也不会抛出异常
void run()
(2)Callable接口
//callable的唯一方法
//返回计算结果,或者如果无法执行则抛出异常。
V call() throws Exception
2、Future框架
(1)Future接口主要方法:
//尝试取消执行此任务。如果任务已完成,已取消或由于某些其他原因无法取消,则此尝试将失败。
boolean cancel(boolean mayInterruptIfRunning)
//如果此任务在正常完成之前被取消则返回true。
boolean isCancelled()
//如果此任务完成,则返回true。
//完成可能是由于正常终止,例外或取消,在所有这些情况下,此方法将返回true。
boolean isDone()
//需要等待计算完成,然后获取其结果。
V get()throws InterruptedException,ExecutionException
V get(long timeout,TimeUnit unit)throws InterruptedException,ExecutionException,TimeoutException
(2)RunnableFuture接口,是Runnable接口Future接口的子接口。除此之外它本身只有一个run方法。
void run()
(3)FutureTask类,实现了RunnableFuture接口。
构造函数:
//创建一个FutureTask在运行时执行给定的Callable。
FutureTask(Callable<V> callable)
//在运行时创建一个FutureTask执行给定的Runnable,get并在成功完成时返回给定的结果result。
FutureTask(Runnable runnable, V result)
并可通过get方法获取计算结果。
3、Executor接口:
这个接口只有一个方法,在将来的某个时间执行给定的命令。根据Executor实现的判断,该命令可以在新线程,池化线程或调用线程中执行。
void execute(Runnable command)
4、ExecutorService接口(Executor接口的子接口)
主要方法submit。
//提交值返回任务以执行并返回表示任务的挂起结果的Future。
//Future的get方法将在成功完成后返回任务的结果。