乐趣区

关于java:Java开发必备腾讯架构师解析Java并发编程从入门到精通

编写优质的并发代码是一件难度极高的事件。Java 语言从第一版本开始内置了对多线程的反对,这一点在当年是十分了不起的,然而当咱们对并发编程有了更粗浅的意识和更多的实际后,实现并发编程就有了更多的计划和更好的抉择。

为什么须要并发

并发其实是一种解耦合的策略,它帮忙咱们把做什么(指标)和什么时候做(机会)离开。这样做能够显著改良应用程序的吞吐量(取得更多的 CPU 调度工夫)和构造(程序有多个局部在协同工作)。做过 Java Web 开发的人都晓得,Java Web 中的 Servlet 程序在 Servlet 容器的反对下采纳单实例多线程的工作模式,Servlet 容器为你解决了并发问题。

背景

并发编程是 Java 语言的重要个性之一,当然也是最难以把握的内容。编写牢靠的并发程序是一项不小的挑战。然而,作为程序员的咱们,要变得更有价值,就须要啃一些硬骨头了。因而,了解并发编程的基础理论和编程实际,让本人变得更值钱吧。

第 1 章,“第一步:并发设计原理”。这一章将介绍并发应用程序的设计原理。你还将理解到并发应用程序可能呈现的问题,以及设计并发应用程序的方法论,同时还会学到一些设计模式、提醒和技巧。

第 2 章,“应用根本元素:Thread 和 Runnable”。这一章将解释如何采纳 Java 语言中最根本的元素(Runnable 接口和 Thread 类)来实现并发应用程序。有了这些元素,你能够创立一个可理论执行线程并行执行的新执行线程。

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

第 4 章,“充分利用执行器”。这一章将探讨执行器的一些高级个性,包含为了在一段时间延迟之后或每隔肯定工夫执行工作而进行的工作撤销和调度。你将实现一个高级客户端 / 服务器应用程序和一个新闻阅读器。

第 5 章,“从工作获取数据:Callable 接口与 Future 接口”。这一章将介绍如何在执行器中解决采纳 Callable 与 Future 接口返回后果的工作。你将实现一个最佳匹配算法以及一个构建倒排索引的应用程序。

第 6 章,“运行分为多阶段的工作:Phaser 类”。这一章将介绍如何应用 Phaser 类来并发执行那些可分为多个阶段的工作。你将实现关键字抽取算法和遗传算法。

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

第 8 章,“应用并行流解决大规模数据集:MapReduce 模型”。这一章将介绍如何采纳流量来解决大规模数据集。你将学习如何应用流 API 和更多的流函数来实现 MapReduce 应用程序。你将实现一个数值汇总算法和一个信息检索工具。

第 9 章 ,“应用并行流解决大规模数据集:MapCollect 模型”。这一章将探讨如何应用流量 API 中的 collect() 办法对数据流执行可变约简(mutable reduction)操作,将其转换为一种不同的数据结构,包含在 Collectors 类中预约义的一些收集器。你将实现一个毋庸建设索引就可能搜寻数据的工具、一个举荐零碎,以及计算社交网络中两个人的独特联系人列表的算法。

第 10 章,“异步流解决:反馈流”。这一章将解释如何应用反馈流来实现并发应用程序,而反馈流则为带有非阻塞回压的异步流解决定义了规范。这种流量的基本原理在官方网站的 Reactive Streams 介绍页面上有明确阐明,而 Java 9 为其实现提供了必要的根底接口。

第 11 章,“探索并发数据结构和同步工具”。这一章将介绍如何应用最重要的并发数据结构(可用于并发应用程序而不会导致数据竞争条件的数据结构),以及 Java 并发 API 用于组织工作执行的所有同步机制。

第 12 章,“测试与监督并发应用程序”。这一章将介绍如何取得 Java 并发 API 元素(线程、锁、执行器等)的状态信息。你还将学习如何应用 JConsole 应用程序来监督并发应用程序,以及如何应用 MultithreadedTC 库克 Java Pathfinder 应用程序来测试并开发应用程序。

第 13 章,“JVM 中的并发解决:Clojure、带有 Gpars 库克 Groovy 以及 Scala”。这一章将介绍如何应用面向 Java 虚拟机的其余编程语言来实现并发应用程序。你将学习如何应用 Clojure、Scala 以及带有 Gpars 库克 Groovy 等编程语言所提供的并发元素









因为文章字数限度,这里只能展现局部文档;我这边整顿了一份残缺的 PDF,有须要的敌人点赞 + 转发之后【点击此处】即可获取!!!

退出移动版