谈谈你对多线程中 ExecutorService 接囗的理解。

ExecutorService 是 Java 平台提供的一个用于管理线程和控制并发的高级接口,它是 Executor 接口的子接口。ExecutorService 提供了一种将任务提交与每个任务将如何运行这两个方面进行解耦的方法。

ExecutorService 提供了一系列的方法用于管理线程的生命周期,包括启动、关闭线程等。与直接创建 Thread 对象相比,使用 ExecutorService 可以提供更好的性能,特别是当程序中有大量的线程,或者每个线程的执行时间都很短的情况下。

ExecutorService 提供了两个提交任务的方法:submit() 和 execute()。submit() 方法可以接收 Callable 或 Runnable 对象,并返回一个 Future 对象,这个 Future 对象可以用于获取任务的结果。execute() 方法则只能接收 Runnable 对象,且没有返回值。

ExecutorService 还提供了一些用于结束线程的方法,如 shutdown() 和 shutdownNow()。shutdown() 方法会停止接收新的任务,等待已提交的任务执行完毕后,才会关闭 ExecutorService。shutdownNow() 方法则会尝试停止所有正在执行的任务,不再接收新的任务,并返回一个包含尚未开始执行的任务的列表。

ExecutorService 使用示例:

ExecutorService executor = Executors.newFixedThreadPool(10); // 创建一个包含10个线程的线程池
executor.execute(new Runnable() { // 提交并执行任务
    @Override
    public void run() {
        System.out.println("Task is running.");
    }
});
executor.shutdown(); // 关闭线程池

发表评论

后才能评论