首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏全栈程序员必看

    ExecutorService详解

    不利于扩展,比如如定时执行、定期执行、线程中断,所以很有必要了解下ExecutorService的使用。 ExecutorService是Java提供的线程池,也就是说,每次我们需要使用线程的时候,可以通过ExecutorService获得线程。 1.ExecutorService的创建方式 public ThreadPoolExecutor(int corePoolSize, int 2.2 单线程池 ExecutorService singlePool = Executors.newSingleThreadExecutor(); 顾名思义,也就是创建一个核心线程: public static = null) { executorService.execute(runnable); } } /** * @param runnable

    2.2K21编辑于 2022-10-01
  • ExecutorService 线程池详解

    ExecutorService 线程池详解1️⃣ 什么是 ExecutorService? 定义:ExecutorService 是 Java 线程池的顶层接口,用于管理和控制线程的执行作用:线程复用,避免频繁创建/销毁线程任务提交与调度,支持批量、定时任务统一管理,可优雅关闭线程池核心特点: 固定线程池ExecutorService fixedPool = Executors.newFixedThreadPool(5);// 2. 单线程池ExecutorService singlePool = Executors.newSingleThreadExecutor();// 3. 缓存线程池(按需创建)ExecutorService cachedPool = Executors.newCachedThreadPool();// 4.

    28310编辑于 2025-09-01
  • 来自专栏全栈程序员必看

    executorservice实例_java controller

    实例化 ExecutorService 实例化 ExecutorService 的方式有两种:一种是工厂方法,另一种是直接创建。 将任务分配给 ExecutorService ExecutorService 可以执行 Runnable 和 Callable 任务。为了使本文简单易懂。 关闭 ExecutorService 一般情况下,ExecutorService 并不会自动关闭,即使所有任务都执行完毕,或者没有要处理的任务,也不会自动销毁 ExecutorService 。 shutdown() 方法: executorService.shutdown(); shutdown() 方法并不会立即销毁 ExecutorService 实例,而是首先让 ExecutorService 我们罗列于此 保持未使用的 ExecutorService 存活 本文中对如何关闭 ExecutorService 已经做出了详细解释。

    64720编辑于 2022-09-30
  • 来自专栏FunTester

    ExecutorService 并发指南

    以下是如何创建一个ExecutorService 实例并提交任务进行异步执行的方法: 创建ExecutorService Java 的 Executors 类提供了各种工厂方法来创建不同类型的 ExecutorService ExecutorService。 线程池机制 ExecutorService 的核心是一个强大的概念——线程池。它就像一群等待被工头(ExecutorService)分配任务的工人(线程)。 ExecutorService 高级功能 现在我们已经探讨了 ExecutorService 的核心功能,让我们深入了解一些高级主题,以获得全面、深刻的理解: 优雅关闭 ExecutorService ExecutorService 实践 ExecutorService 在许多需要异步处理以提高性能和响应性的场景中表现出色。

    59610编辑于 2025-01-23
  • ExecutorService获取 队列任务数量

    欢迎关注微信公众号:数据科学与艺术 作者WX:superhe199 获取ExecutorService队列中的任务数量,可以使用java.util.concurrent.ThreadPoolExecutor executorService = Executors.newFixedThreadPool(5); // 提交一些任务 for (int i = 0; i < 10 ; i++) { executorService.submit(new Task()); } // 获取队列中的任务数量 if (executorService instanceof ThreadPoolExecutor) { ThreadPoolExecutor threadPoolExecutor = (ThreadPoolExecutor) executorService; BlockingQueue<Runnable> queue = threadPoolExecutor.getQueue

    23210编辑于 2025-08-29
  • 来自专栏码匠的流水账

    聊聊ExecutorService的监控

    * * @param delegate {@link ExecutorService} to wrap. * * @param delegate {@link ExecutorService} to wrap. ExecutorService executorService, String executorServiceName, Iterable<Tag> tags) { this.executorService ")) { monitor(registry, unwrapThreadPoolExecutor(executorService, executorService.getClass , executorService.getClass().getSuperclass())); } else if (executorService instanceof ForkJoinPool

    1.5K20发布于 2018-10-18
  • 来自专栏后端码事

    关于 Executor 和 ExecutorService

    = null) { executor.execute(active); } } }} 二、ExecutorService: 任务执行器 提供任务终止方法 返回 用以跟踪任务执行结果 1、可以被关闭,也就意味着执行器不再接受新任务 shutdown:等待已提交的任务执行完毕后关闭 shutdownNow:阻止等待的任务开始并停止当前运行的任务 对于不再使用的 ExecutorService 用以取消任务或者等待任务执行完成 3、invokeAny、invokeAll:批处理任务,invokeAny 等待任务中任一任务执行完成即返回,invokeAll 等待所有任务执行完成即返回 4、Executors:ExecutorService

    54620发布于 2020-09-11
  • 来自专栏丑胖侠

    ExecutorService——shutdown方法和awaitTermination方法

    ExecutorService的关闭 shutdown和awaitTermination为接口ExecutorService定义的两个方法,一般情况配合使用来关闭线程池。 方法简介 shutdown方法:平滑的关闭ExecutorService,当此方法被调用时,ExecutorService停止接收新的任务并且等待已经提交的任务(包含提交正在执行和提交未执行)执行完成。 当等待超过设定时间时,会监测ExecutorService是否已经关闭,若关闭则返回true,否则返回false。一般情况下会和shutdown方法组合使用。

    1.9K50编辑于 2022-05-06
  • java判断ExecutorService是否有任务

    在Java中,ExecutorService是一个用于管理线程池的接口,它提供了提交和执行任务的方法。有时候我们需要判断ExecutorService是否还有任务在执行或等待执行,以便进行相应的处理。 本文将介绍如何判断ExecutorService是否有任务。1. 创建ExecutorService:首先,我们需要创建一个ExecutorService对象。 判断ExecutorService是否有任务:一种简单的判断ExecutorService是否有任务的方法是使用`awaitTermination()`方法。 我们可以通过设置一个较短的超时时间来判断ExecutorService是否有任务。 ,表示ExecutorService有任务在执行或等待执行。

    20110编辑于 2025-06-18
  • 来自专栏HUC思梦的java专栏

    使用ExecutorService实现线程池

    ExecutorService是java提供的用于管理线程池的类。 ExecutorService executor = Executors. newFixedThreadPool(nThreads, threadFactory); 说明:创建固定大小(nThreads ExecutorService executor = Executors.newSingleThreadExecutor(); 重载后的版本,需要多传入实现了ThreadFactory接口的对象。 ExecutorService executor = Executors. newSingleThreadScheduledExecutor(ThreadFactory threadFactory) ExecutorService executor = Executors.newCachedThreadPool(ThreadFactory threadFactory) ; 说明:使用时,放入线程池的

    88240发布于 2020-09-03
  • 来自专栏捡田螺的小男孩

    “既生 ExecutorService, 何生 CompletionService?”

    中详细的介绍了 ExecutorService,可以将整块任务拆分做简单的并行处理; 在 不会用Java Future,我怀疑你泡茶没我快 中又详细的介绍了 Future 的使用,填补了 Runnable ExecutorService VS CompletionService 假设我们有 4 个任务(A, B, C, D)用来执行复杂的计算,每个任务的执行时间随着输入参数的不同而不同,如果将任务提交到 ExecutorService, 相信你已经可以“信手拈来” ExecutorService executorService = Executors.newFixedThreadPool(4); List (executorService.submit(B)); futures.add(executorService.submit(C)); futures.add(executorService.submit executorService = Executors.newFixedThreadPool(4); // ExecutorCompletionService 是 CompletionService

    58430发布于 2021-04-08
  • 来自专栏日拱一兵

    “既生 ExecutorService, 何生 CompletionService?”

    中详细的介绍了 ExecutorService,可以将整块任务拆分做简单的并行处理; 在 不会用Java Future,我怀疑你泡茶没我快 中又详细的介绍了 Future 的使用,填补了 Runnable 不能获取线程执行结果的空缺 将二者结合起来使用看似要一招吃天下了(Java有并发,并发之大,一口吃不下), but ~~ 是我太天真 ExecutorService VS CompletionService 假设我们有 4 个任务(A, B, C, D)用来执行复杂的计算,每个任务的执行时间随着输入参数的不同而不同,如果将任务提交到 ExecutorService, 相信你已经可以“信手拈来” ExecutorService executorService = Executors.newFixedThreadPool(4); List<Future> futures = new ArrayList<Future<Integer >>(); futures.add(executorService.submit(A)); futures.add(executorService.submit(B)); futures.add(executorService.submit

    87230发布于 2020-08-13
  • 来自专栏程序那些事

    java并发中ExecutorService的使用

    java并发中ExecutorService的使用 ExecutorService是java中的一个异步执行的框架,通过使用ExecutorService可以方便的创建多线程执行环境。 本文将会详细的讲解ExecutorService的具体使用。 创建ExecutorService 通常来说有两种方法来创建ExecutorService。 第二种方法是直接创建一个ExecutorService, 因为ExecutorService是一个interface,我们需要实例化ExecutorService的一个实现。 这里我们使用ThreadPoolExecutor来举例: ExecutorService executorService = new ThreadPoolExecutor(1, : List<Future<String>> futures = executorService.invokeAll(callableTasks); 关闭ExecutorService 如果ExecutorService

    1.7K10发布于 2020-07-08
  • ExecutorService 类方法介绍及示例

    概述 在Java中,ExecutorService是一个接口,它提供了一种方式来管理异步任务的执行。 使用ExecutorService可以避免显式地创建和管理线程,这有助于减少资源消耗和提高应用程序的响应性。 核心概念 ExecutorService 的核心概念主要围绕着线程池和任务管理。 任务调度: ExecutorService 提供了对任务调度的控制,包括任务的执行顺序、优先级等。 executorService.awaitTermination(60, TimeUnit.SECONDS)) { executorService.shutdownNow()

    34300编辑于 2025-04-05
  • 来自专栏全栈程序员必看

    executorservice和executor_source counter

    ."); } } 2、创建ExecutorService,并提交10个任务(线程池有5个固定的线程) import java.util.concurrent.ExecutorService; import class ThreadPoolTest { public static void main(String[] args) { System.out.println("开启线程池..."); ExecutorService executorService = Executors.newFixedThreadPool(5); for (int i = 0; i < 10; i++) { Runnable worker = new WorkerThread(); executorService.execute(worker); } try { Thread.sleep(5000);//主线程休眠5 秒,便于观察 } catch (InterruptedException e) { e.printStackTrace(); } executorService.shutdown();

    33010编辑于 2022-09-30
  • 来自专栏小鄧子的技术博客专栏

    About ExecutorService(4),AsyncTask番外篇

    直接切入正题,我们都知道AT在3.X将默认的线程池由并行改为串行,真的是众所周知的3.0(HONEYCOMB)开始的嘛?答案是否定的。确切的说是从3.2(HONEYCOMB_MR1)起。

    37940发布于 2018-08-20
  • 来自专栏丑胖侠

    ExecutorService——newScheduledThreadPool使用功能测试

    学习ScheduledExecutorService类创建的newScheduledThreadPool相关用法

    77140编辑于 2022-05-06
  • 来自专栏程序那些事

    使用ExecutorService来停止线程服务

    之前的文章中我们提到了ExecutorService可以使用shutdown和shutdownNow来关闭。 这两种关闭的区别在于各自的安全性和响应性。 (new HashSet<Runnable>()); public TrackingExecutor(ExecutorService executorService){ this.executorService =executorService; } @Override public void shutdown() { executorService.shutdown() executorService.isTerminated()){ throw new IllegalStateException("executorService is not ,他传入一个ExecutorService,并对其进行封装。

    1.4K40发布于 2020-07-08
  • 来自专栏小鄧子的技术博客专栏

    About ExecutorService(1),Future&FutureTask

    void done() { //FutureTask执行完的回调 doSomething(); } }; //自定义ExecutorService ExecutorService executor = Executors.newFixedThreadPool(1); //在这里执行RealData的call内容 executor.submit

    35020发布于 2018-08-20
  • 来自专栏全栈程序员必看

    executorservice 线程池_并发数与线程数

    https://blog.csdn.net/lmj623565791/article/details/27250059 Java并发专题 带返回结果的批量任务执行 CompletionService ExecutorService.invokeAll

    1.3K10编辑于 2022-09-30
领券