Java的Executor框架简介

Java的Executor框架简介

Java的Executor框架

在Java中使用线程来执行异步任务。线程的创建和销毁都有资源的开销,为了解决这些问题,出现了线程池技术。Executor框架实现的就是线程池的功能。

Executor框架简介

在HotSpot虚拟机的线程模型中,Java的线程会映射到操作系统的线程。

多线程的程序是分为很多任务,把这些任务交给Executor框架调度执行,操作系统把相应的线程映射到处理器中执行。示意图如下:

Java的Executor框架简介

调度模型

Executor框架中有很多接口和核心类

Runnable 或者Callable接口的实现类就是我们需要建立的任务,把这些任务提交给Executor或ExecutorService执行,最后返回Future。

Java的Executor框架简介

接口和实现类

其中Executor接口,只有一个执行任务的方法。

ExecutorService继承与Executor,增加了提交任务的方法和管理线程池的方法。

ThreadPoolExecutor核心类,创建线程并执行任务。

Future就是异步执行的结果,是submit方法返回,通过futrue.get()获取计算结果。

Callable和Runnable接口,这两个接口的不同之处就是Callable可以返回结果,Runnable则不可。如果有submit提交一个Runnable,后台会用Executors.callable(runnable, result)转成Callable。


分享到:


相關文章: