Java Executor程序框架示例教程

时间:2020-02-23 14:35:00  来源:igfitidea点击:

Java 5推出了名为新框架 Executor Framework用于管理线程。
我们已经在如何创建一个线程之前看到。

如果我们已注意到,我们需要使用线程类的对象使用 new Thread(runnableObject)因此,我们需要为每个任务创建线程对象.imagine一个情况,其中我们有数以千计的任务,如果我们为数千个任务创建每个线程,则可以获得性能开销作为每个线程的创建和维护也是一个高架。
执行者框架将解决问题。
在Executor Framework中,我们可以创建指定数量的线程并重用它们在完成其当前任务后执行更多任务。 Executor framework简化创建多线程应用程序的设计并管理线程寿命周期。
程序员不必创建或者管理线程本身,这是执行者框架的最大优势。
执行者框架有一些重要的类或者接口。

执行者

此接口用于提交新任务。
它具有一个名为"Execute"的方法。

public interface Executor {
 void execute(Runnable command);
}

ExecutorService.

它是executor的子接口。
此接口提供了管理任务生命周期的方法,以及执行程序。
例如,它提供了关闭executors的方法。

scheduledexecutorservice.

它是执行器服务的子接口,它提供了以固定间隔或者初始延迟来调度任务的方法。

执行者

此类为创建线程池提供工厂方法。
重要的工厂执行者方法是:

newfixedthreadpool:此方法返回其最大大小(假设n个线程)的线程池执行器是修复的。

如果所有N个线程正忙于执行任务并提交其他任务,那么它们必须在队列中,直到线程可用。

newcachedthreadpool:此方法返回一个无限的线程池。

它没有最大尺寸,但如果它具有较少数量的任务,那么它将拆除未使用的线程。
如果一个线程未使用1分钟(KeepAliveTime),那么它将撕下它。

newsinglethreadeDexecutor:此方法返回一个executor,保证使用单个线程。

NewscheduledThreadPool:此方法返回一个固定大小的线程池,可以在给定延迟之后或者定期执行以后调度命令。

ThreadPoolExecutor.

ThreadPoolExecutor是ThreadPool的实际实现。
它扩展了ApprestThreadPoolExecutor,它实现了ExecutorService接口。
我们可以从Executor类的出厂方法创建ThreadPoolExecutor。
建议使用如上所述获取ThreadPoolExecute实例的方法。