全2册 Java多线程编程实战指南:设计模式篇(第2版)+核心篇 Java核心技术编程语言入门到精通pdf下载

全2册 Java多线程编程实战指南:设计模式篇(第2版)+核心篇 Java核心技术编程语言入门到精通百度网盘pdf下载

作者:
简介:全2册 Java多线程编程实战指南:设计模式篇(第2版)+核心篇 Java核心技术编程语言入门到精通
出版社:
出版时间:
pdf下载价格:0.00¥

免费下载


书籍下载


内容介绍


  商品基本信息,请以下列介绍为准
图书名称: Java多线程编程实战指南:设计模式篇(第2版)+Java多线程编程实战指南 核心篇 全2册
作者: 黄文海
定价: 158.00
ISBN号:

9787121382451

9787121310652

出版社: 电子工业出版社

  编辑推荐

Java多线程编程实战指南:设计模式篇(第2版)

本书用Java诠释多线程编程的“三十六计”——多线程设计模式,对每个设计模式的讲解都附有实战案例和源代码解析,从理论到实战经验,全面呈现常用多线程设计模式的来龙去脉。
本书第2版除更正了第1版中的错误外,还新增了JDK 8、JDK 9中与多线程设计模式相关的内容,并对代码进行了重构和重新排版,使代码部分重点更突出、更易于阅读,以及提高了插图的清晰度

Java多线程编程实战指南 核心篇

1 内容脉络清晰,讲解循序渐进,介绍系统全面。围绕多线程编程所要解决的问题及其面临的挑战,展开介绍多线程编程中的相关概念、原理与技术。
2 包含丰富的实战案例和生活化实例,案例配有源码,并且这些源码可以实际运行,方便读者实验。
3 书中包含提示、扩展阅读等内容,以问答的形式解答多线程编程初学者经常遇到的一些疑惑和问题。


  内容简介

《Java多线程编程实战指南:设计模式篇(第2版)》

随着CPU多核时代的到来,多线程编程在充分利用计算资源、提高软件服务质量方面扮演了越来越重要的角色。解决多线程编程中频繁出现的普遍问题可以借鉴设计模式所提供的现成解决方案。然而,多线程编程相关的设计模式图书多采用C 作为描述语言,且书中所举的例子多与应用开发人员的实际工作相去甚远。本书采用Java语言和UML为描述语言,并结合作者多年工作经历及相关实践经验,介绍了多线程环境下常用设计模式的来龙去脉:各个设计模式是什么样的、典型的实际应用场景、实际应用时需要注意的事项及各个设计模式的可复用代码实现。本书第2版除更正了第1版中的错误外,还新增了JDK 8、JDK 9中与多线程设计模式相关的内容,并对代码进行了重构和重新排版,使代码部分重点更突出、更易于阅读,以及提高了插图的清晰度。本书适合有一定Java多线程编程基础、经验的读者阅读

《Java多线程编程实战指南 核心篇》

随着现代处理器的生产工艺从提升处理器主频频率转向多核化,即在一块芯片上集成多个处理器内核(Core),多核处理器(Multicore Processor)离我们越来越近了--如今就连智能手机这样的消费类设备都已配备了4核乃至8核的处理器,更何况商用系统!在此背景下,以往靠单个处理器自身处理能力的提升所带来的软件计算性能提升的那种"免费午餐"已不复存在,这使得多线程编程在充分利用计算资源、提高软件服务质量方面扮演了越来越重要的角色。故而,掌握多线程编程技能对广大开发人员的重要性亦由此可见一斑。《Java多线程编程实战指南(核心篇)》以基本概念、原理与方法为主线,辅以丰富的实战案例和生活化实例,并从Java虚拟机、操作系统和硬件多个层次与角度出发,循序渐进、系统地介绍Java平台下的多线程编程核心技术及相关工具。
《Java多线程编程实战指南(核心篇)》适合有一定Java语言基础的读者作为入门多线程编程之用,也适合有一定多线程编程经验的读者作为重新梳理知识结构以提升认知层次和参考之用。


  目录

《Java多线程编程实战指南:设计模式篇(第2版)》

第1章 Java多线程编程实战基础 1 
1.1 无处不在的线程 1 
1.2 线程的创建与运行 3 
1.3 线程的状态与上下文切换 5 
1.4 对线程的监视 8 
1.5 原子性、内存可见性和重排序——重新认识synchronized 
和volatile 11 
1.6 多线程编程的优势和风险 13 
1.7 多线程编程常用术语 14 
第2章 设计模式简介 19 
2.1 设计模式及其作用 19 
2.2 多线程设计模式简介 22 
2.3 设计模式的描述 23 
...
第7章 Producer-Consumer(生产者/消费者)模式 87 
7.1 Producer-Consumer模式简介 87 
7.2 Producer-Consumer模式的架构 87 
7.3 Producer-Consumer模式实战案例解析 90 
7.4 Producer-Consumer模式的评价与实现考量 93 
7.4.1 产品的粒度 94 
7.4.2 通道积压 94 
7.4.3 非阻塞式反压与Reactive Streams规范 96 
7.4.4 工作窃取算法 97 
7.4.5 线程的停止 101 
7.4.6 高性能、高可靠性的Producer-Consumer模式实现 101 
7.5 Producer-Consumer模式的可复用实现代码 102 
7.6 Java标准库实例 102 
7.7 相关模式 102 
7.7.1 Guarded Suspension模式(第4章) 102 
7.7.2 Thread Pool模式(第9章) 103 
7.8 参考资源 103 
第8章 Active Object(主动对象)模式 104 
8.1 Active Object模式简介 104 
8.2 Active Object模式的架构 105 
8.3 Active Object模式实战案例解析 108 
8.4 Active Object模式的评价与实现考量 115 
8.4.1 错误隔离 117 
8.4.2 缓冲区监控 118 
8.4.3 缓冲区饱和处理策略 118 
8.4.4 Scheduler空闲工作者线程清理 119 
8.5 Active Object模式的可复用实现代码 119 
8.6 Java标准库实例 123 
8.7 相关模式 123 
8.7.1 Promise模式(第6章) 123 
8.7.2 Producer-Consumer模式(第7章) 123 
8.8 参考资源 124 
...
第15章 模式语言 258 
15.1 设计模式之间的联系 258 
15.2 Immutable Object模式 260 
15.3 Guarded Suspension模式 261 
15.4 Two-phase Termination模式 262 
15.5 Promise模式 263 
15.6 Producer-Consumer模式 264 
15.7 Active Object模式 265 
15.8 Thread Pool模式 266 
15.9 Thread Specific Storage模式 267 
15.10 Serial Thread Confinement模式 268 
15.11 Master-Slave模式 269 
15.12 Pipeline模式 270 
15.13 Half-sync/Half-async
《Java多线程编程实战指南 核心篇》

第一部分 多线程编程基础
第1章 走近Java世界中的线程 2
1.1 进程、线程与任务 2
1.2 多线程编程简介 4
1.2.1 什么是多线程编程 4
1.2.2 为什么使用多线程 4
1.3 Java线程API简介 5
1.3.1 线程的创建、启动与运行 5
1.3.2 Runnable接口 9
1.3.3 线程属性 12
1.3.4 Thread类的常用方法 14
1.3.5 Thread类的一些废弃方法 16
1.4 无处不在的线程 17
1.5 线程的层次关系 19
1.6 线程的生命周期状态 21
1.7 线程的监视 22
1.8 多线程编程简单运用实例 26
*1.9 多线程编程的优势和风险 27
1.10 本章小结 29
...
第5章 线程间协作 179
5.1 等待与通知:wait/notify 179
5.1.1 wait/notify的作用与用法 180
5.1.2 wait/notify的开销及问题 188
5.1.3 Object.notify()/notifyAll()的选用 191
*5.1.4 wait/notify与Thread.join() 191
5.2 Java条件变量 192
5.3 倒计时协调器:CountDownLatch 198
5.4 栅栏(CyclicBarrier) 203
5.5 生产者—消费者模式 210
5.5.1 阻塞队列 213
5.5.2 限购:流量控制与信号量(Semaphore) 216
*5.5.3 管道:线程间的直接输出与输入 218
5.5.4 一手交钱,一手交货:双缓冲与Exchanger 221
5.5.5 一个还是一批:产品的粒度 223
5.5.6 再探线程与任务之间的关系 224
5.6 对不起,打扰一下:线程中断机制 225
5.7 线程停止:看似简单,实则不然 228
5.7.1 生产者—消费者模式中的线程停止 233
5.7.2 实践:Web应用中的线程停止 233
5.8 本章小结 236
...
第12章 Java多线程程序的性能调校 415
12.1 Java虚拟机对内部锁的优化 415
12.1.1 锁消除 415
12.1.2 锁粗化 417
12.1.3 偏向锁 419
12.1.4 适应性锁 420
12.2 优化对锁的使用 421
12.2.1 锁的开销与锁争用监视 421
12.2.2 使用可参数化锁 424
12.2.3 减小临界区的长度 428
12.2.4 减小锁的粒度 432
12.2.5 考虑锁的替代品 438
12.3 减少系统内耗:上下文切换 438
12.4 多线程编程的“三十六计”:多线程设计模式 440
12.5 性能的隐形杀手:伪共享 441
12.5.1 Java对象内存布局 442
12.5.2 伪共享的侦测与消除 445
12.6 本章小结 454
Web参考资源 457
参考文献 463


  作者简介
黄文海,2004年开始从事软件开发工作,近几年从事软件项目管理工作。在其工作过程中积累了丰富的技术指导经验和企业内部培训经验。曾在InfoQ中文站和IBM developerWorks上发表过十几篇技术、项目管理文章。