`
zhouchaofei2010
  • 浏览: 1104221 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

java并发编程实战-第6章-任务执行

 
阅读更多

第二部分 结构化并发应用程序

java并发编程实战-第6章-任务执行

6.1 在线程中执行任务

  当围绕”任务执行“来设计应用程序结构时,第一步就是找出清晰的任务边界。理想情况下,任务之间是

 

相互独立的

  

   吞吐率和相应时间的选择:当用户希望尽快的相应,而负载过多时,应用性能应该逐步减低

   

6.2 Excutor框架

    java 类库中,任务执行的主要抽象不是Thread,而是Executor

   

    这是基于生产者-消费者模式的一种设计

6.2.1 示例 基于Excutor的web服务器  

6.2.2 执行策略

    各种执行策略,都是一种资源管理工具。

6.2.3 线程池

    newFixedThreadPool

    newCachedThreadPool

    newSingleThreadExecutor(FIFO, LIFO, priority order).[

    newScheduledThreadPool

6.2.4 Executor 生命周期

 Listing 6.7. Lifecycle Methods in ExecutorService.

public interface ExecutorService extends Executor {

   void shutdown();

   List<Runnable> shutdownNow();

   boolean isShutdown();

   boolean isTerminated();

   boolean awaitTermination(long timeout, TimeUnit unit)

       throws InterruptedException;

   //  ... additional convenience methods for task submission

}

 

 

three states running, shutting down, and terminated

6.2.5 延迟任务和周期任务

     

     Timer是单线程的,应该用ScheduledThreadPoolExecutor替换它

     

      构建自己的ScheduledThreadPoolExecutor,可使用DelayQueue

      

 

     

6.3   需找可以用的并行性

6.3.2 携带结果的任务Callable与Future

6.3.3 示例:使用Future实现页面渲染器

       

6.3.4 在异构任务并行化存在的缺陷

    

6.3.5  CompletionService: Executor Meets BlockingQueue

     CompletionService把Executor和BlockingQueue的功能融合在一起

     

    

    

6.3.6 使用CompletionService实现页面渲染

       图像下载后,放入BlockingQueue队列中,take从BlockingQueue去封装

6.3.7 为任务设置时限

 

6.3.8 示例:旅行预订门户网站

小结:

 

 

Excutor框架的介绍和任务边界定义的观点

 

 

 

分享到:
评论

相关推荐

    Java并发编程实战

    第6章 任务执行 6.1 在线程中执行任务 6.1.1 串行地执行任务 6.1.2 显式地为任务创建线程 6.1.3 无限制创建线程的不足 6.2 Executor框架 6.2.1 示例:基于Executor的Web服务器 6.2.2 执行策略 6.2.3 线程池...

    Java并发编程实战华章专业开发者书库 (Tim Peierls 等 美Brian Goetz).pdf

    《Java并发编程实战》是一本深入探讨Java平台并发编程的权威指南,由Tim Peierls等人与Brian Goetz合著,旨在帮助Java开发者理解和掌握在多线程环境中编写高效、安全的代码。这本书由拥有丰富经验的JDK并发大师及...

    Java并发编程实践-电子书1-9章pdf

    《Java并发编程实践》是Java开发者深入理解并发编程的重要参考资料,尤其对于想要提升多线程应用设计和性能优化技能的程序员来说,这本书提供了丰富的实践经验和深入的理论知识。以下是根据提供的章节内容概述的一些...

    Java并发编程实战2019.zip

    Java并发编程实战,第1章 简介,第2章 线程安全性 第3章 对象的共享 第4章 对象的组合 第5章 基础构建模块 第6章 任务执行 第7章 取消与关闭 第8章 线程池的使用 第9章 图形用户界面应用程序 第10章 避免...

    Java 并发编程实战

    第6章 任务执行 6.1 在线程中执行任务 6.1.1 串行地执行任务 6.1.2 显式地为任务创建线程 6.1.3 无限制创建线程的不足 6.2 Executor框架 6.2.1 示例:基于Executor的Web服务器 6.2.2 执行策略 6.2.3 线程池...

    汪文君高并发编程实战视频资源下载.txt

    │ Java并发编程.png │ ppt+源码.rar │ 高并发编程第二阶段01讲、课程大纲及主要内容介绍.wmv │ 高并发编程第二阶段02讲、介绍四种Singleton方式的优缺点在多线程情况下.wmv │ 高并发编程第二阶段03讲、...

    龙果 java并发编程原理实战

    龙果 java并发编程原理实战 第2节理解多线程与并发的之间的联系与区别 [免费观看] 00:11:59分钟 | 第3节解析多线程与多进程的联系以及上下文切换所导致资源浪费问题 [免费观看] 00:13:03分钟 | 第4节学习并发的四...

    Java并发编程实践 PDF 高清版

    第6章 任务执行 6.1 在线程中执行任务 6.2 Executor 框架 6.3 寻找可强化的并行性 第7章 取消和关闭 7.1 任务取消 7.2 停止基于线程的服务 7.3 处理反常的线程终止 7.4 JVM关闭 第8章 应用线程池 8.1 任务与执行策略...

    《Java并发编程的艺术》源代码

    第1章介绍Java并发编程的挑战,向读者说明进入并发编程的世界可能会遇到哪些问题,以及如何解决。 第2章介绍Java并发编程的底层实现原理,介绍在CPU和JVM这个层面是如何帮助Java实现并发编程的。 第3章介绍深入介绍...

    实战Java高并发程序设计第二版随书代码

    这本书涵盖了Java并发编程的核心概念和技术,旨在帮助开发者在实际项目中高效地处理高并发场景。随书附带的代码提供了丰富的示例,以便读者能够更直观地理解并实践这些理论知识。 1. **Java并发基础** - **线程与...

    Java并发编程的艺术

    第二章深入探讨了Java并发编程的底层实现原理。这一章不仅涵盖了CPU层面的知识,还涉及到了JVM内部的工作机制。例如,作者们详细解释了Java虚拟机是如何管理和调度线程的,以及这些线程如何与其他操作系统进程协调...

    汪文君高并发编程实战视频资源全集

    │ Java并发编程.png │ ppt+源码.rar │ 高并发编程第二阶段01讲、课程大纲及主要内容介绍.wmv │ 高并发编程第二阶段02讲、介绍四种Singleton方式的优缺点在多线程情况下.wmv │ 高并发编程第二阶段03讲、...

    java并发编程实践笔记

    ### Java并发编程实践笔记知识点详解 #### 一、保证线程安全的方法 1. **不要跨线程访问共享变量:** 当多个线程共享某个变量时,若其中一个线程修改了该变量,其他线程若没有正确同步,则可能读取到错误的数据。...

    java高并发编程第一版

    《Java高并发编程》第一版是一本专注于...通过阅读《Java高并发编程》第一版,开发者不仅可以掌握Java并发编程的核心概念和技术,还能了解到如何在实际工作中设计和实现高效、安全的并发程序,提升系统的并发处理能力。

Global site tag (gtag.js) - Google Analytics