Java 并发编程学习(三):Executor和ExecutorService

2021-03-04 07:28

阅读:436

标签:ring   创建   adp   固定   print   接口   exit   消费者   技术   

线程池基本机制

线程池是一种池化资源,其主要解决重复创建线程带来的额外开销。线程池的设计使用了生产者-消费者模型。向线程池中提交一个计算任务,执行提交动作的线程是生产者,线程池中的线程作为消费者来执行具体的计算。

Executor和ExecutorService

Java中Executor是线程池的顶层抽象接口,其提供了一个最基本的方法定义:执行任务。
技术图片

ExecutorService拓展了Executor接口,提供了管理线程池、批量执行任务的接口。
技术图片

使用线程池

import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;


public class Main {

    public static void main(String[] args) {
        // 使用静态方法创建一个线程数为固定大小的线程池
        ExecutorService pool = Executors.newFixedThreadPool(1);

        // 定义一个任务
        Runnable task = () -> {
            System.out.println("[" + Thread.currentThread().getName() + "] is execute task");
        };

        // 因为ExecutorService拓展了Executor接口因此可以调用execute方法来执行计算任务
        pool.execute(task);

        // 使用完线程池之后要主动关闭线程池,销毁线程。
        pool.shutdown();

        System.out.println("[" + Thread.currentThread().getName() + "] exit");
    }
}

执行结果:
技术图片

Java 并发编程学习(三):Executor和ExecutorService

标签:ring   创建   adp   固定   print   接口   exit   消费者   技术   

原文地址:https://www.cnblogs.com/chenyulin/p/14361464.html


评论


亲,登录后才可以留言!