当前位置: 首页 > 后端技术 > Java

Java开发精要:腾讯架构师剖析Java并发编程从入门到精通

时间:2023-04-02 00:47:10 Java

编写高质量的并发代码是一项极其艰巨的任务。Java语言从第一个版本开始就内置了对多线程的支持,这在当时是非常了不起的,但是当我们对并发编程的理解更深,实践更多的时候,我们就会对并发编程有更好的理解。更多的选择和更好的选择。为什么需要并发并发其实是一种解耦策略,帮助我们把做什么(目标)和什么时候做(时机)分开。这样做可以显着提高应用程序的吞吐量(获得更多的CPU调度时间)和结构(程序有多个部分协同工作)。做过JavaWeb开发的都知道,JavaWeb中的Servlet程序在Servlet容器的支持下采用单实例多线程的工作方式,Servlet容器为你处理并发问题。背景并发编程是Java语言的重要特性之一,当然也是最难掌握的。编写可靠的并发程序是一个不小的挑战。但是,作为程序员,我们要想变得更有价值,就需要啃一些硬骨头。因此,了解并发编程的基础理论和编程实践,让自己更有价值。第1章,“第一步:并发设计的原则”。本章介绍并发应用程序的设计原则。您还将了解并发应用程序可能存在的问题和设计并发应用程序的方法,以及设计模式、提示和技巧。第2章,“使用基本元素:Thread和Runnable”。本章解释如何使用Java语言的最基本元素(Runnable接口和Thread类)实现并发应用程序。使用这些元素,您可以创建一个新的执行线程,该线程可以与实际执行线程并行执行。第3章,“管理大量线程:执行器”。本章将介绍执行器框架的基础知识。该框架使您能够使用大量线程而无需创建或管理它们。您将实现k最近邻算法和基本的客户端/服务器应用程序。第4章,“充分利用执行器”。本章探讨执行器的一些高级功能,包括任务取消和在延迟后或定期执行任务的调度。您将实现一个高级客户端/服务器应用程序和一个新闻阅读器。第5章,“从任务中获取数据:可调用接口和未来接口”。本章将介绍如何在执行器中使用Callable和Future接口处理返回结果的任务。您将实施最佳匹配算法和构建倒排索引的应用程序。第6章,“分阶段运行任务:Phaser类”。本章介绍如何使用Phaser类并发执行可分为多个阶段的任务。您将实施关键字提取算法和遗传算法。第7章,“优化分而治之的解决方案:Fork/Join框架”。本章描述了如何使用一种特殊的执行器,该执行器针对可以使用分而治之法解决的问题进行了优化,即Fork/Join框架及其工作窃取算法。您将实现k均值聚类算法、数据过滤算法和归并排序算法。第8章,“使用并行流处理大规模数据集:MapReduce模型”。本章将介绍如何使用流处理大规模数据集。您将学习如何使用流式API和更多流式功能来实施MapReduce应用程序。您将实施数值汇总算法和信息检索工具。第9章,“使用并行流处理大规模数据集:MapCollect模型”。本章探讨如何使用FlowAPI中的collect()方法对数据流执行可变缩减操作,将其转换为不同的数据结构,包括Collectors类设备中预定义的一些集合。您将实现一个无需索引即可搜索数据的工具、一个推荐系统和一个计算社交网络中两个人之间常见联系人列表的算法。第10章,“异步流处理:反应流”。本章解释了如何使用ReactiveStreams实现并发应用程序,它定义了具有非阻塞背压的异步流处理标准。这个流程的基本原理在官网的ReactiveStreams介绍页面上有很清楚的解释,Java9为其实现提供了必要的基础接口。第11章,“探索并发数据结构和同步工具”。本章描述了如何使用最重要的并发数据结构(可以在并发应用程序中使用而不会导致数据竞争条件的数据结构),以及JavaConcurrencyAPI用于组织任务执行的所有同步机制。第12章,“测试和监控并发应用程序”。本章介绍如何获取有关Java并发API元素(线程、锁、执行程序等)的状态信息。您还将学习如何使用JConsole应用程序来监视并发应用程序,以及如何使用MultithreadedTCCookJavaPathfinder应用程序来测试和开发应用程序。第13章,“JVM中的并发性:Clojure、Cook、GroovywithGpars和Scala”。本章介绍如何使用其他编程语言实现并发应用程序,目标是Java虚拟机。您将学习如何将Clojure、Scala和CookGroovy等编程语言提供的并发元素与Gpars一起使用。由于文章字数限制,这里只能展示部分文档;我这里整理了一份完整的PDF,有需要的朋友点赞+转发后【点此】获取!!!