MST

星途 面试题库

面试题:Java中Executor接口的基本功能及简单应用场景

请简述Java中Executor接口的主要功能,并举一个在日常开发中较为常见的使用Executor接口的简单应用场景,并说明如何通过Executor接口来实现该场景。
50.2万 热度难度
编程语言Java

知识考点

AI 面试

面试题答案

一键面试

Executor接口主要功能

Executor接口是Java并发包中提供的用于执行任务的基础接口。其主要功能是为任务的执行提供一种抽象机制,允许将任务的提交和执行解耦。它定义了一个方法 execute(Runnable task),该方法接收一个 Runnable 任务,并安排在一个适当的线程中执行此任务,线程的管理和调度由实现 Executor 接口的具体类负责,而无需任务提交者直接处理线程的创建、启动等细节,从而简化了并发编程。

常见应用场景

在Web应用程序中处理用户请求是常见场景。例如,一个电商网站接收用户的订单请求,将订单处理任务提交给 Executor 执行,这样主线程可以快速响应给用户,而订单处理任务在后台线程中执行,避免阻塞主线程影响用户体验。

实现方式

import java.util.concurrent.Executor;
import java.util.concurrent.Executors;

public class ExecutorExample {
    public static void main(String[] args) {
        // 创建一个单线程的Executor实例
        Executor executor = Executors.newSingleThreadExecutor();
        // 提交任务
        executor.execute(() -> {
            // 模拟订单处理任务
            System.out.println("处理订单任务开始执行,线程名称:" + Thread.currentThread().getName());
            try {
                Thread.sleep(2000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            System.out.println("订单处理任务完成");
        });
        System.out.println("主线程继续执行,响应给用户");
    }
}

在上述代码中,首先通过 Executors.newSingleThreadExecutor() 创建了一个 Executor 实例,该实例使用单个线程执行任务。然后通过 execute 方法提交了一个 Runnable 任务,该任务模拟了订单处理逻辑。主线程在提交任务后继续执行,不会等待订单处理任务完成,实现了任务的异步执行。