实战Java高并发程序设计(第2版) 9787121350030pdf下载

实战Java高并发程序设计(第2版) 9787121350030百度网盘pdf下载

作者:
简介:实战Java高并发程序设计(第2版) 9787121350030
出版社:
出版时间:2018-10
pdf下载价格:0.00¥

免费下载


书籍下载


内容介绍


由于有小部分库存年限久 , 会有一点自然旧的情况(纸张发黄)(封面看起来不是崭
新崭新的 里面内容是新的 不会影响您的正常阅读与使用)如果比较介意的话 请勿下单!!
商品有什么问题请及时与客服沟通,我们会及时处理。请不要差评!谢谢!
温馨提示:我店周日休息,只接单不发货所拍商品周一发货!
着急的买家请谨慎购买!谢谢合作!本店可开电子发票!
开发票需要提供所开发票抬头及纳税人识别号(统一社会信用代码)!
不提供的或者开<个人>的默认不开发票敬请谅解!
发票内容默认开明细(书名),谢谢!

基本信息

书名:实战Java高并发程序设计(第2版)

定价:89.00元

作者:葛一鸣

出版社:电子工业出版社

出版日期:2018-10-01

ISBN:9787121350030

字数:

页码:416

版次:1

装帧:平装-胶订

开本:16开

商品重量:0.4kg

编辑推荐


结构清晰。总体上循序渐进,逐步提升。每一章都各自有鲜明的侧重点,有利于读者快速抓住重点。
理论结合实战。本书注重实战,书中重要的知识点都安排了代码实例,帮助读者理解。同时也不忘记对系统的内部实现原理进行深度剖析。
通俗易懂。尽量避免采用过于理论的描述方式,简单的白话文风格贯穿全书,配图基本上为手工绘制,降低了理解难度,并尽量做到读者在阅读过程中少盲点、无盲点。
读者评价:脉络清晰,查阅方便,讲解到位,通俗易懂,多线程和高并发专业。

内容提要


在单核CPU时代,单任务在一个时间点只能执行单一程序,随着多核CPU的发展,并行程序开发变得尤为重要。本书主要介绍基于Java的并行程序设计基础、思路、方法和实战。一,立足于并发程序基础,详细介绍Java进行并行程序设计的基本方法。第二,进一步详细介绍了K对并行程序的强大支持,帮助读者快速、稳健地进行并行程序开发。第三,详细讨论了“锁”的优化和提高并行程序性能级别的方法和思路。第四,介绍了并行的基本设计模式,以及Java 8/9/10对并行程序的支持和改进。第五,介绍了高并发框架Akka的使用方法。第六,详细介绍了并行程序的调试方法。第七,分析Jetty代码并给出一些其在高并发优化方面的例子。本书内容丰富,实例典型,实用性强,适合有Java基础的技术开发人员阅读。

目录


目    录章  走入并行世界11.1  何去何从的并行计算11.1.1  忘掉那该死的并行21.1.2  可怕的现实:摩尔定律的失效41.1.3  柳暗花明:不断地前进51.1.4  光明或是黑暗61.2  你必须知道的几个概念71.2.1  同步(Synchronous)和异步(Asynchronous)71.2.2  并发(Concurrency)和并行(Parallelism)81.2.3  临界区91.2.4  阻塞(Blocking)和非阻塞(Non-Blocking)91.2.5  死锁(Deadlock)、饥饿(Starvation)和活锁(Livelock)101.3  并发级别111.3.1  阻塞111.3.2  无饥饿(Starvation-Free)111.3.3  无障碍(Obstruction-Free)121.3.4  无锁(Lock-Free)131.3.5  无等待(Wait-Free)131.4  有关并行的两个重要定律141.4.1  Amdahl定律141.4.2  Gustafson定律161.4.3  是否相互矛盾171.5  回到Java:JMM181.5.1  原子性(Atomicity)181.5.2  可见性(Visibility)201.5.3  有序性(Ordering)221.5.4  哪些指令不能重排:Happen-Before规则27第2章  Java并行程序基础292.1  有关线程你必须知道的事292.2  初始线程:线程的基本操作322.2.1  新建线程322.2.2  终止线程342.2.3  线程中断382.2.4  等待(wait)和通知(notify)412.2.5  挂起(suspend)和继续执行(resume)线程452.2.6  等待线程结束(join)和谦让(yeild)492.3  volatile与Java内存模型(JMM)502.4  分门别类的管理:线程组532.5  驻守后台:守护线程(Daemon)542.6  先做重要的事:线程优先级562.7  线程安全的概念与关键字synchronized572.8  程序中的幽灵:隐蔽的错误612.8.1  无提示的错误案例622.8.2  并发下的ArrayList632.8.3  并发下诡异的HashMap642.8.4  初学者常见的问题:错误的加锁67第3章  K并发包713.1  多线程的团队协作:同步控制713.1.1  关键字synchronized的功能扩展:重入锁723.1.2  重入锁的好搭档:Condition813.1.3  允许多个线程同时访问:信号量(Semaphore)853.1.4  ReadWriteLock读写锁863.1.5  倒计数器:CountDownLatch893.1.6  循环栅栏:CyclicBarrier913.1.7  线程阻塞工具类:LockSupport943.1.8 Guava和RateLimiter限流983.2  线程复用:线程池1013.2.1  什么是线程池1023.2.2  不要重复发明轮子:K对线程池的支持1023.2.3  刨根究底:核心线程池的内部实现1083.2.4  超负载了怎么办:拒绝策略1123.2.5  自定义线程创建:ThreadFactory1153.2.6  我的应用我做主:扩展线程池1163.2.7  合理的选择:优化线程池线程数量1193.2.8  堆栈去哪里了:在线程池中寻找堆栈1203.2.9  分而治之:Fork/Join框架1243.2.10  Guava中对线程池的扩展1283.3  不要重复发明轮子:K的并发容器1303.3.1  超好用的工具类:并发集合简介1303.3.2  线程安全的HashMap1313.3.3  有关List的线程安全1323.3.4  高效读写的队列:深度剖析ConcurrentLinkedQueue类1323.3.5  高效读取:不变模式下的CopyOnWriteArrayList类1383.3.6  数据共享通道:BlockingQueue1393.3.7  数据结构:跳表(SkipList)1443.4  使用JMH进行性能测试1463.4.1  什么是JMH1473.4.2  Hello JMH1473.4.3  JMH的基本概念和配置1503.4.4  理解JMH中的Mode1513.4.5  理解JMH中的State1533.4.6  有关性能的一些思考1543.4.7  CopyOnWriteArrayList类与ConcurrentLinkedQueue类157第4章  锁的优化及注意事项1614.1  有助于提高锁性能的几点建议1624.1.1  减少锁持有时间1624.1.2  减小锁粒度1634.1.3  用读写分离锁来替换独占锁1654.1.4  锁分离1654.1.5  锁粗化1684.2  Java虚拟机对锁优化所做的努力1694.2.1  锁偏向1694.2.2  轻量级锁1694.2.3  自旋锁1704.2.4  锁消除1704.3  人手一支笔:ThreadLocal1714.3.1  ThreadLocal的简单使用1714.3.2  ThreadLocal的实现原理1734.3.3  对性能有何帮助1794.4  无锁1824.4.1  与众不同的并发策略:比较交换1824.4.2  无锁的线程安全整数:AtomicInteger1834.4.3  Java中的指针:Unsafe类1854.4.4  无锁的对象引用:AtomicReference1874.4.5  带有时间戳的对象引用:AtomicStampedReference1904.4.6  数组也能无锁:AtomicIntegerArray1934.4.7  让普通变量也享受原子操作:AtomicIntegerFieldUpdater1944.4.8  挑战无锁算法:无锁的Vector实现1964.4.9  让线程之间互相帮助:细看SynchronousQueue的实现2014.5  有关死锁的问题205第5章  并行模式与算法2095.1  探讨单例模式2095.2  不变模式2135.3  生产者-消费者模式2155.4  高性能的生产者-消费者模式:无锁的实现2205.4.1  无锁的缓存框架:Disruptor2215.4.2  用Disruptor框架实现生产者-消费者模式的案例2225.4.3  提高消费者的响应时间:选择合适的策略2255.4.4  CPU Cache的优化:解决伪共享问题2265.5  Future模式2305.5.1  Future模式的主要角色2325.5.2  Future模式的简单实现2335.5.3  K中的Future模式2365.5.4  Guava对Future模式的支持2385.6  并行流水线2405.7  并行搜索2445.8  并行排序2465.8.1  分离数据相关性:奇偶交换排序2465.8.2  改进的插入排序:希尔排序2505.9  并行算法:矩阵乘法2545.10  准备好了再通知我:网络NIO2585.10.1  基于Socket的服务端多线程模式2595.10.2  使用NIO进行网络编程2645.10.3  使用NIO来实现客户端2725.11  读完了再通知我:AIO2745.11.1  AIO EchoServer的实现2755.11.2  AIO Echo客户端的实现277第6章  Java 8/9/10与并发2816.1  Java 8的函数式编程简介2816.1.1  函数作为一等公民2826.1.2  无副作用2836.1.3  声明式的(Declarative)2836.1.4  不变的对象2846.1.5  易于并行2846.1.6  更少的代码2846.2  函数式编程基础2856.2.1  FunctionalInterface注释2856.2.2  接口默认方法2866.2.3  lambda表达式2906.2.4  方法引用2916.3  一步一步走入函数式编程2936.4  并行流与并行排序2986.4.1  使用并行流过滤数据2986.4.2  从集合得到并行流2996.4.3  并行排序2996.5  增强的Future:CompletableFuture3006.5.1  完成了就通知我3006.5.2  异步执行任务3016.5.3  流式调用3036.5.4  CompletableFuture中的异常处理3036.5.5  组合多个CompletableFuture3046.5.6  支持timeout的 CompletableFuture3066.6  读写锁的改进:StampedLock3066.6.1  StampedLock使用示例3076.6.2  StampedLock的小陷阱3086.6.3  有关StampedLock的实现思想3106.7  原子类的增强3136.7.1  更快的原子类:LongAdder3146.7.2  LongAdder功能的增强版:LongAccumulator3206.8  ConcurrentHashMap的增强3216.8.1  foreach操作3216.8.2  reduce操作3216.8.3  条件插入3226.8.4  search操作3236.8.5  其他新方法3246.9  发布和订阅模式3246.9.1 简单的发布订阅例子3266.9.2 数据处理链328第7章  使用Akka构建高并发程序3317.1  新并发模型:Actor3327.2  Akka之Hello World3327.3  有关消息投递的一些说明3367.4  Actor的生命周期3377.5  监督策略3417.6  选择Actor3467.7  消息收件箱(Inbox)3467.8  消息路由3487.9  Actor的内置状态转换3517.10  询问模式:Actor中的Future3547.11  多个Actor同时修改数据:Agent3567.12  像数据库一样操作内存数据:软件事务内存3597.13  一个有趣的例子:并发粒子群的实现3637.13.1  什么是粒子群算法3647.13.2  粒子群算法的计算过程3647.13.3  粒子群算法能做什么3667.13.4  使用Akka实现粒子群367第8章  并行程序调试3758.1  准备实验样本3758.2  正式起航3768.3  挂起整个虚拟机3798.4  调试进入ArrayList内部380第9章  多线程优化示例―Jetty核心代码分析3859.1  Jetty简介与架构3859.2  Jetty服务器初始化3879.2.1  初始化线程池3879.2.2  初始化ScheduledExecutorScheduler3899.2.3  初始化ByteBufferPool3909.2.4  维护ConnectionFactory3939.2.5  计算ServerConnector的线程数量3949.3  启动Jetty服务器3949.3.1  设置启动状态3949.3.2  注册ShutdownMonitor3959.3.3  计算系统的线程数量3959.3.4  启动QueuedThreadPool3969.3.5  启动Connector3969.4  处理请求3999.4.1  Accept成功3999.4.2  请求处理401

作者介绍


葛一鸣:炼数成金特约讲师,国家认证系统分析师,获得Oracle OCP认证。长期从事Java软件开发工作,对Java程序设计、JVM有深入研究,对设计模式、人工智能、神经网络、数据挖掘等技术有浓厚兴趣,著有《实战Java虚拟机》一书,目前在Dataguru开设多门课程,包括Java并发、JVM、Git等。

文摘


序言