美文网首页Guava
(八)guava实现线程池

(八)guava实现线程池

作者: hedgehog1112 | 来源:发表于2020-12-23 11:45 被阅读0次

Guava 有很多并发类,包含几个ExecutorService 实现,用MoreExecutors助手类来创建实例,无法直接或子类创建实例。

概要:2 直接执行(少用) MoreExecutors(多用)   3退出Executor服务  4监听装饰器Futures.allAsList() 

一、引入

二、直接执行者

场景:在同一个线程中执行任务。简单起见,休眠 500 毫秒阻塞,执行调用完,立即可用

directExecutor() :返回静态单例,不会在对象创建上,带来开销

应该更喜欢用MoreExecutors.newDirectExecutorService(),调用时创建完整实现

三、退出 Executor 服务

问题:线程池运行时关闭虚拟机,导致 JVM 工作时无限期挂起

解决:Guava 引入实例化好执行器 Executor 服务。守护线程,与 JVM 一起终止

           还提供了 Runtime.getRuntime().addShutdownHook() 添加关闭钩子设置 VM 放弃挂起前,等待预配置超时时间

例:无限循环任务,用包含 100 毫秒超时时间 已存在服务运行,超时后终止 VM 。如没exitingExecutorService将无限期挂起

四、监听装饰器

监听装饰器允许封装ExecutorService提交任务时返回 ListenableFuture 实例,不是简单 Future 实例

1、ListenableFuture 扩展自 Future 接口:(用得少)可添加新方法 addListener(),添加完成时调用监听器

2、(用的多)Futures.allAsList() ,在单个 ListenableFuture 组合多个 ListenableFuture 实例,将所有futures 合并返回结果

(1)privateListeningExecutorService executorService = MoreExecutors.listeningDecorator(Executors.newCachedThreadPool());

(2)executorService.submit(() -> ctrlStrategy.dump(key, cache));

http://cmsblogs.com/?p=10721

相关文章

  • (八)guava实现线程池

    Guava 有很多并发类,包含几个ExecutorService实现,用MoreExecutors助手类来创建实例...

  • Java线程池,看这个就够了

    1.简介 本文将介绍Java中的线程池 - 从标准Ja​​va库中的不同实现开始,然后查看Google的Guava...

  • 线程以及java线程池实现分享

    线程以及java线程池实现分享 线程简介 JDK线程池的工作原理 JDK线程池的实现细节 1.线程简介-由来 1....

  • java多线程面试题

    实现多线程的方法 1.实现Thread接口 2.实现Runnable接口创建线程 3.实现 线程池 创建线程池的代...

  • 不怕难之线程池原理

    一、线程池状态 ThreadPoolExecutor 是 JDK 中的线程池实现,这个类实现了一个线程池需要的各个...

  • 线程池的原理

    参考 深入Java源码理解线程池原理 线程池是对CPU利用的优化手段 线程池使用池化技术实现,替他的实现还有连接池...

  • Java核心(二)深入理解线程池ThreadPool

    本文你将获得以下信息: 线程池源码解读 线程池执行流程分析 带返回值的线程池实现 延迟线程池实现 为了方便读者理解...

  • java基础-多线程

    java线程池的实现 ThreadPoolExecutor java线程池几个参数 corePoolSize当线程...

  • 瞧一瞧~看一看~MyCat架构剖析免费不要钱!(下)

    一、MyCat线程架构与实现 1.MyCat线程池实现 在MyCat中大量用到了线程池, 通过线程池来避免频繁的创...

  • java 实现自定义线程池

    java 实现自定义线程池 定义线程池接口 线程池接口的默认实现 示例摘抄于《Java并发变成的艺术》4.4.3线...

网友评论

    本文标题:(八)guava实现线程池

    本文链接:https://www.haomeiwen.com/subject/gtyynktx.html