Java线程池自学手册Executor的使用

版权声明:本文为博主原创文章,转载请注明出处。 https://blog.csdn.net/StemQ/article/details/70304819

准备做一个系列文章,将零散的知识整理起来分享给大家,希望给大家的工作和学习带来帮助。

目录

1.Executor

2.ExecutorService

3.Executors

4.ThreadPoolExecutor

5.ScheduledExecutorService

6.ScheduledThreadPoolExecutor

一.Executor介绍

说明:这个接口只有一个方法,主要实现了Runnable接口的任务,当初设计者设计这个接口时是想把任务和“任务的运行方法”、“线程的调度和使用”分离开来,想用来替代直接用Thread的方式。下面我们就来一起学习下这个接口的简单使用。

1.方法

void execute(Runnable command);  //执行一个实现了Runnable接口的任务

2.类继承结构

3.代码演示

public class ExecutorDemo {
    public static void main(String[] args) {
        Executor executor = Executors.newCachedThreadPool();
        Runnable run1 = new Runnable() {
            @Override
            public void run() {
                System.out.println(Thread.currentThread().getName() + "创建一个无界可自动回收线程池");
            }
        };
        Runnable run2 = new Runnable() {
            @Override
            public void run() {
                System.out.println(Thread.currentThread().getName() + "创建一个无界可自动回收线程池");
            }
        };
        Runnable run3 = new Runnable() {
            @Override
            public void run() {
                System.out.println(Thread.currentThread().getName() + "创建一个无界可自动回收线程池");
            }
        };
        executor.execute(run1);
        executor.execute(run3);
        executor.execute(run2);
    }
}

二.总结

这篇文章初步介绍了Executor的使用方法,只有一个接口,通常用于将任务分解为单独的task,每个task即可以运行在新线程中又可以运行在调用线程中。很多时候Executor的使用要求task的实施必须是在某种特定的条件下,如在特定的时间如何执行,具体的细节可以在今后的工作中慢慢体会。

猜你喜欢

转载自blog.csdn.net/StemQ/article/details/70304819