executor执行框架是JDK1.5新增的,用于专注于任务执行的框架。其最大的特点就是将任务的创建和任务的执行分离,松耦合,已达到最大限度的利用计算机资源(线程和内存等)。在并发编程中,executor是一个必备的工具。
在分析源代码之前,首先需要对executor框架的整体结构有一定了解,以保证在进行源代码分析时,可以有很好的分析路线,不至于被绕晕。excutor框架最顶层是由四个部分构成:
1、ThreadFactory : 负责线程的创建,任务的执行是依靠线程完成的。
2、Executor : 负责线程的运行。
4、ThreadPoolExecutor : 负责对ThreadFactory创建的线程进行管理和调度。
3、Future : 获取任务的结果。因为任务是被放入线程中,启动线程进行异步执行。此时就需要一个对象来接收异步计算的结果(没有结果,也是一种特殊的结果)。Future就是用来接收这个返回结果的。这个结果可以是预期的结果,也可以是一个异常(Exception)。
一 、 ThreadFactory
ThreadFactory是一个接口,其中只有一个方法,即newThread(Runnable r)。从这个方法名字就可以知道,这接口是用来创建新的线程的。其使用也很简单,仅仅只需要实现newThread方法,根据自己的需要进行线程的创建即可。采用这种工厂方法的方式创建线程的优势在于,用户可以根据自己的需要进行线程的创建,同时用户也可以自定义线程工厂,比如保存线程创建线程的数量的ThreadFactory,创建特