javaexecutor框架的应用

美女程序员鼓励师

我们知道为了实现对线程池的作用,executor对线程的管理采取了一定的措施,使用接口进行操作。所以我们会发现,其实executor框架是有许多不同的接口的,它们分别在不同的执行上发挥相应的作用。下面我们就executor框架组成、框架使用图和实例为大家进行展示。

1.executor框架组成

(1)工作任务:Runnable/Callable 接口

作任务就是Runnable/Callable接口的实现,可以被线程池执行

(2)执行机制:Executor接口、ExecutorService接口、ScheduledExecutorService接口

ThreadPoolExecutor 是最核心的线程池实现,用来执行被提交的任务

ScheduledThreadPoolExecutor 是任务调度的线程池实现,可以在给定的延迟后运行命令,或者定期执行命令(它比Timer更灵活)

ForkJoinPool是一个并发执行框架

(3)异步计算的结果:Future接口

实现Future接口的FutureTask类,代表异步计算的结果

2.Executor框架使用图

/* @param corePoolSize */

/* @param maximumPoolSize */

/* @param keepAliveTime 线程空闲时存活的有效时长 */

/* @param unit 时长单位 */

/* @param unit 时长单位 */

/* @param workQueue 等待执行的队列 */

/* maximumPoolSize是在workQueue队列满了之后才额外创建的线程数量 */

ThreadPoolExecutor tpe = new ThreadPoolExecutor(5, 10, 100, TimeUnit.MILLISECONDS, new ArrayBlockingQueue<Runnable>(10));

/* 有返回值 */

Callable<String> callable = new Callable<String>() {

    public String call() throws Exception {

        try {

            Thread.sleep(5000);

            String a = "return String";

            return a;

        } catch (Exception e) {

            e.printStackTrace();

            return "exception";

        }

    }

};

Future<String> future = tpe.submit(callable);

/* 获取返回值,这是一个同步阻塞式获取的方法 */

future.get();

 

/* 有返回值 */

FutureTask<String> futureTask = new FutureTask<String>(callable);

futureTask.run();

 

/* 无返回值 */

Runnable runnable = new Runnable() {

    public void run() {

        try {

            Thread.sleep(5000);

            String a = "return String";

        } catch (Exception e) {

            e.printStackTrace();

        }

    }

};

tpe.execute(runnable);

以上就是java中executor框架的应用,可以看出其中不同的接口,对于线程的一些作用,这就是executor框架用法的体验,即实现对线程池的管理。

以上是 javaexecutor框架的应用 的全部内容, 来源链接: utcz.com/z/542482.html

回到顶部