阿里资深架构带你玩转Java高并发

笑着哭i 提交于 2020-03-04 16:29:32

【推荐】2020年最新Java电子书集合.pdf(吐血整理) >>>

前言

关于Java与并行
由于单核CPU的主频逐步逼近极限,多核CPU架构成为了一种必然的技术趋势。所以,多线程并行程序便显得越来越重要。并行计算的一个重要应用场景就是服务端编程。可以看到,目前服务端CPU的核心数已经轻松超越10核心,而Java显然已经成为当下最流行的服务端编程语言,因此熟悉和了解基于Java的并行程序开发有着重要的实用价值。

如果还没有购买又需要这本【实战Java高并发程序设计】书籍文档的话帮忙转发一下然后再关注我私信回复“电子书”免费获取吧!

适合阅读人群

虽然本书力求通俗,但要通读本书并取得良好的学习效果,要求读者需要具备基本的Java知识或者一定的编程经验。因此,本书适合以下读者:
●拥有一定开发经验的Java平台开发人员(Java. Scala, JRuby等)
●软件设计师、架构师
●系统调优人员
●有一定的Java编程基础并希望进一步加深对并行的理解的研发人员

本书的体系结构

  • 本书立足于实际开发,又不缺乏理论介绍,力求通俗易懂、循序渐进。本书共分为8章。
    第1章主要介绍了并行计算中相关的一些基本概念,树立读者对并行计算的基本认识:介绍了两个重要的并行性能评估定律,以及Java内存模型JMM.
    第2章介绍了Java并行程序开发的基础,包括Java中Thread的基本使用方法等,也详细介绍了并行程序容易引发的一些错误和误用。
    第3章介绍了JDK内部对井行程序开发的支持,主要介绍JUC (Java.util.concurrent) 中一些工具的使用方法、各自特点及它们的内部实现原理。
    第4章介绍了在开发过程中可以进行的对锁的优化,也进一步 简要描述了Java 虚拟机层面对并行程序的优化支持。此外,还花费一定篇幅介绍了有关无锁的计算。
    第5章介绍了并行程序设计中常见的一些设计模式以及一 些典型的并行算法和使用方法,其中包括重要的JavaNIO和AIO的介绍。
    第6章介绍了Java 8中为并行计算做的新的改进,包括并行流、CompletableFuture.StampedLock和LongAdder。
    第7章主要介绍了高并发框架Akka的基本使用方法,并使用Akka框架实现了一个简单的粒子群算法,模拟超高井发的场景。
    第8章介绍了使用Eeclipse进行多线程调试的方法,井演示了通过Eelipse进行多线程调试重现AmayList的线程不安全问题。

走入并行世界:当你打开本书,也许你正试图将你的应用改造成并行模式运行,也许你只是单纯地对并行程序感兴趣。无论出于何种原因,你正对并行计算充满好奇、疑问和求知欲。如果是这样,那就对了,带着你的好奇和疑问,让我们一起遨游并行程序的世界,深入了解它们究竟是如何工作的吧!

 

 

 

 

Java并行程序基础:我们已经探讨为什么必须面对并行程序这样复杂的程序设计方法,那么下面就需要静下心来,认真研究如何才能构建一个正确、健壮并且高效的并行系统。本章将详细介绍有关Java并行程序的设计基础,以及一些常见的问题,希望对读者有所帮助。

 

 

JDK并发包:为了更好地支持并发程序,JDK内部提供了大量实用的API和框架。在本章中,将主要介绍这些JIDK内部的功能,其主要分为三大部分:
首先,将介绍有关同步控制的工具,之前介绍的synchronized 关键字就是一种同步控制手段,在这里,我们将看到更加丰富多彩的多线程控制方法。
其次,将详细介绍JIDK中对线程池的支持,使用线程池,将能很大程度上提高线程调度的性能。
第三,我将向大家介绍JDK的一些并发容器,这些容器专为并行访问所设计,绝对是高效、安全、稳定的实用工具。

 

 

 

 

锁的优化以及注意事项:“锁”是最常用的同步方法之一。在高并发的环境下,激烈的锁竞争会导致程序的性能下降。所以我们自然有必要讨论一 些有关“锁"的性能问题以及相关一些注意事项。 比如:避免死锁、减小锁粒度、锁分离等。

 

 

并行模式与算法:在这一章中,我将重点向大家介绍一些有关并行的设计模式以及算法。这些都是前人的经验总结和智慧的结晶。大家可以在熟知其思想和原理的基础之上,再根据自己的需求进行扩展,可能会达到更好的效果。

 

Java8与并发:2014年,Onacle发布了Java8新版本。对于Java来说,这显然是一个具有里程碑意义的版本。它最主要的改进是增加了函数式编程的功能。就目前来说,Java 最令人头痛的问题,也是受到最多质疑的地方,应该就是Java那烦琐的语法。这样我们不得不花费大量的代码行数,来实现一些司空见惯的功能,以至于Java程序总是冗长的。但是,这一切将在Java 8的函数式编程中得到缓解。

 

使用Akka构建高并发程序:我们知道,写出一个正确的、高性能井且可扩展的并发程序是相当困难的,那么是否有一个好的框架可以帮助我们轻松构建这么一个应用呢?答案是肯定的,那就是Akka, Akka 是一款遵循Aapche2许可的开源人员,这意味着你可以无偿井且几乎没有限制地使用它,包括将它应用于商业环境中。

 

 

并行程序调试:并行程序调试要比串行程序复杂得多,但幸运的是,现代IDE开发环境可以在一定程度上缓建并发程序调试的难度。在本章中,我想简单介绍一下有关并行程序调试的一些技巧和经验。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!