01.04 利用Java并发API强大功能,实现并发应用程序不费吹灰之力

内容提要

Java提供了一-套非常强大的并发API,可以轻松实现任何类型的并发应用程序。本书讲述Java并发API最重要的元素,包括执行器框架、Phaser 类、Fork/Join 框架、流API、并发数据结构、同步机制,并展示如何在实际开发中使用它们。此外,本书还介绍了设计并发应用程序的方法论、设计模式、实现良好并发应用程序的提示和技巧、测试并发应用程序的工具和方法,以及如何使用面向Java虚拟机的其他编程语言实现并发应用程序。

前言:

目前,计算机系统(以及其他相关系统,如平板电脑、智能手机等)可以让你同时执行多项任务。

这是因为它们拥有并发的操作系统,能够同时控制多项任务。使用你最喜欢的编程语言中的并发API,还能实现一个可以同时执行多项任务(读取文件、显示消息、读取网络上的数据)的应用程序。Java提供了一套非常强大的并发API,让你不费吹灰之力就可以实现任何类型的并发应用程序。在Java的每个版本中,该并发API提供给程序员的功能都有所增加。从Java8开始,已经包含了流API以及一些便于实现并发应用程序的新方法和类。本书讲述了Java并发API最重要的元素,展示了如何在实际开发中使用它们。这些元素如下所示。

1.执行器框架,用于控制大量任务的执行。

2.Phaser类,用于执行可划分为多个阶段的任务。

3. Fork/Join框架,用于执行采用分治法解决问题的任务。

4.流API,用于处理大型数据源,包括新的反应流。

5.并发数据结构,用于在并发应用程序中存储数据。

6.同步机制,用于组织并发任务。

此外,Java并发API还包含更多内容,包括设计并发应用程序的方法论、设计模式、实现良好并发应用程序的提示和技巧、测试并发应用程序的工具和方法,以及采用其他面向Java 虚拟机的语言(例如Clojure、Groovy 和Scala )实现并发应用程序的方法。

本书内容

第1章:“第一步:并发设计原理”。

这一章将介绍并发应用程序的设计原理。你还将了解到并发应用程序可能出现的问题,以及设计并发应用程序的方法论,同时还会学到一- 些设计模式、提示和技巧。

利用Java并发API强大功能,实现并发应用程序不费吹灰之力


利用Java并发API强大功能,实现并发应用程序不费吹灰之力


第2章:“使用基本元素: Thread和Runnable"。

这一章将解释如何采用Java语言中最基本的元素( Runnable接口和Thread类)来实现并发应用程序。有了这些元素,你可以创建一个可与实际执行线程并行执行的新执行线程。

利用Java并发API强大功能,实现并发应用程序不费吹灰之力


利用Java并发API强大功能,实现并发应用程序不费吹灰之力

第3章:“管理大量线程:执行器”。

这一章将介绍执行器框架的基本原理。该框架让你能够使用大量的线程,而无须创建或管理它们。你将实现k-最近邻算法和一个基本的客户端/服务器应用程序。

利用Java并发API强大功能,实现并发应用程序不费吹灰之力

第4章:“充分利用执行器”。

这一章将探讨执行器的一 - 些高级特性,包括为了在一段延迟之后或每隔一定时间执行任务而进行的任务撤销和调度。你将实现一个高级客户端/服务器应用程序和一个新闻阅读器。

利用Java并发API强大功能,实现并发应用程序不费吹灰之力


第5章:“从任务获取数据: callable 接口与Future接口”。

这一章将介绍如何在执行器中处理采用callable与Future接口返回结果的任务。你将实现-个最佳匹配算法以及一个构建倒排索引的应用程序。

利用Java并发API强大功能,实现并发应用程序不费吹灰之力


第6章:“运行分为多阶段的任务: Phaser 类”。

这一章将介绍如何使用Phaser类来并发执行那些可分为多个阶段的任务。你将实现关键字抽取算法和遗传算法。

利用Java并发API强大功能,实现并发应用程序不费吹灰之力


利用Java并发API强大功能,实现并发应用程序不费吹灰之力


第7章:“优化分治解决方案: Fork/Join框架”。

这一章将介绍如何使用一种特殊的执行器,该执行器针对可以使用分治法解决的问题进行了优化,这就是Fork/Join框架及其工作窃取( work-stealing )算法。你将实现k-means聚类算法、数据筛选算法以及归并排序算法。

利用Java并发API强大功能,实现并发应用程序不费吹灰之力

第8章:“使用并行流处理大规模数据集: MapReduce 模型”。

这一章将 介绍如何采用流来处理大规模数据集。你将学习如何使用流API和更多的流函数来实现MapReduce应用程序。你将实现一个数值汇总算法和一一个信息检索工具。

利用Java并发API强大功能,实现并发应用程序不费吹灰之力


利用Java并发API强大功能,实现并发应用程序不费吹灰之力

第9章:“使用并行流处理大规模数据集: MapCollect 模型”。

这一章将 探讨如何使用流API中的collect ()方法对数据流执行可变约简( mutable reduction )操作,将其转换为一种不同的数据结构,包括在Collectors类中预定义的一些收集器。你将实现一一个 无须建立索引就能够搜索数据的工具、一个推荐系统,以及计算社交网络中两个人的共同联系人列表的算法。

利用Java并发API强大功能,实现并发应用程序不费吹灰之力

第10章:“异步流处理:反应流”。

这一章将解释如何使用反应流来实现并发应用程序,而反应流则为带有非阻塞回压的异步流处理定义了标准。这种流的基本原理在官方网站的Reactive Streams介绍页面上有明确说明,而Java 9为其实现提供了必要的基础接口。

利用Java并发API强大功能,实现并发应用程序不费吹灰之力

第11章:“探究并发数据结构和同步工具”。

这一章将介绍如何使用最重要的并发数据结构(可用于并发应用程序而不会导致数据竞争条件的数据结构),以及Java并发API中用于组织任务执行的所有同步机制。

利用Java并发API强大功能,实现并发应用程序不费吹灰之力

第12章:“测试与监视并发应用程序”。

这一章将介绍如何获得Java并发API元素(线程、锁、执行器等)的状态信息。你还将学习如何使用JConsole应用程序来监视并发应用程序,以及如何使用MultithreadedTC库和Java Pathfinder应用程序来测试并发应用程序。

利用Java并发API强大功能,实现并发应用程序不费吹灰之力


利用Java并发API强大功能,实现并发应用程序不费吹灰之力

第13章:“JVM中的并发处理: Clojure、 带有Gpars库的Groovy以及Scala”。

这一章将介绍如何使用面向Java虚拟机的其他编程语言来实现并发应用程序。你将学习如何使用Clojure、Scala以及带有Gpars库的Groovy等编程语言所提供的并发元素。

利用Java并发API强大功能,实现并发应用程序不费吹灰之力

由于文章篇幅有限,为了节省大家的时间,所以整理出来了一部分内容供大家参考。小编已经帮助大家把文档整理出来了,只需要私信【学习】二字即可。

如果大家喜欢小编的文章可以关注、转发,万分感谢!

利用Java并发API强大功能,实现并发应用程序不费吹灰之力



分享到:


相關文章: