27-介绍下Executor架构

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_38331606/article/details/84816734
  1. 介绍下Executor架构

Execuotr是一个基于生产-消费者模型的异步处理架构。可实现线程的提交,与线程的执行过程的解耦。主要包括三个方向:

    1. 任务架构:

以Runnable,Callable接口实现的任务对象;其中Callable接口实现的任务对象,可获取其执行结果,同时可抛出异常由调用端进行处理。

 

    1. 任务提交执行架构:

基于生产者消费者模型实现的以Executor,ExecutorService为核心的线程池架构。其中线程池ThreadPoolExecutor的实现类,通常通过工厂类Executors进行创建线程池pool。线程池可通过submit()提交Runnable以及Callable任务,并得到一个Future对象。可通过execute()提交Runnable任务。其中常见的线程池有如下四种方式。其中线程池可通过ShutDown()方式关闭

用于负载较重的服务器

固定大小的线程池FixedThreadPool

用于不会有太多线程活动

单线程的线程池SingleThreadPool

用于负载较轻,或者执行很多短期的异步任务

根据需要变化的线程池CachedThreadPool

用于定时调度任务

定时调度线程池ScheduledThreadPool,

 

    1. 异步任务执行结果架构:

以Future接口以及其实现类FutureTask为核心的异步执行结果架构,用于获取异步的执行结果。

其中,FutureTask实现了Runnable以及Future接口,同时存在FutureTask(Callable<V> callable),以及FutureTask(Runnable runnable, V result)两种构造方法。可通过get()方法获取Callable的异步执行结果。

 

猜你喜欢

转载自blog.csdn.net/qq_38331606/article/details/84816734