Executor框架的使用
- 主线程首先要创建实现 Runnable 或者 Callable 接口的任务对象。工具类
Executors 可以把一个 Runnable 对象封装为一个 Callable
对象(
Executors.callable(Runnable task)
或Executors.callable(Runnable task,Object result)
)。
然后可以把 Runnable对象直接交给
ExecutorService
执行(ExecutorService.execute (Runnable command)
);或者也可以把Runnable
对象或Callable
对象提交给ExecutorService
执行(ExecutorService.submit(Runnable task)
或ExecutorService.submit (Callable<T>task)
)。如果执行
ExecutorService.submit(...)
,ExecutorService
将返回一个实现Future
接口的对象(在JDK8中,返回的是FutureTask
对象)。由于FutureTask
实现了Runnable
,开发者也可以创建FutureTask
,然后直接交给ExecutorService
执行。最后,主线程可以执行
FutureTask.get()
方法来等待任务执行完成。主线程也可以执行FutureTask.cancel(boolean mayInterruptIfRunning)
来取消此任务的执行。