Executor与四种线程池
这是一篇迟来的文章,从上一篇文章开始,就说要介绍Executor,但是由于有事一直>拖了好久,如果还没有看过上一篇文章的用户,可以阅读一下 Android异步处理的几>种方式 。 Excutor Excutor实质上只是一个接口而已,所以我们可以建立一个类用来实现这个Excutor。 public class MyExecutor implements Executor { @Override public void execute (Runnable runnable) { new Thread(runnable).start(); } } 当然对Executor简单的实现,意义并不是很大,我们需要的是对每个任务的控制和调度,这样,通常需要增加队列,以及优先级的功能。这也就是所谓的线程池,线程池是任务队列和线程的集合。好了下面一个个说。 ExecutorService ExecutorService提供了管理终止的方法,以及可以跟踪一个或多个异步任务执行状况而生成 Future 的接口。 根据图中列出的方法可以看到,提供了关闭的方法shutdownNow() , shutdownNow() 方法阻止等待任务的启动并试图停止当前正在执行的任务。在终止后,执行程序没有任务在执行,也没有任务在等待执行,并且无法提交新任务。 我们可以看一下继承实现关系