| 书名: | 实战Java高并发程序设计 | ||
| 作者: | 葛一鸣 | 开本: | |
| YJ: | 69 | 页数: | |
| 现价: | 见1;CY=CY部 | 出版时间 | 2015-11 |
| 书号: | 9787121273049 | 印刷时间: | |
| 出版社: | 电子工业出版社 | 版次: | |
| 商品类型: | 正版图书 | 印次: | |
D1章 走入并行SJ
1.1 何去何从的并行计算
1.1.1 忘掉那该死的并行
1.1.2 可怕的现实:摩尔定律的失效
1.1.3 柳暗花明:不断地前进
1.1.4 光明或是黑暗
1.2 你必须知道的几个概念
1.2.1 同步(SynchroDus)和异步(AsynchroDus)
1.2.2 并发(Concurrency)和并行(Parallelism)
1.2.3 临界区
1.2.4 阻塞(Blocking)和非阻塞(Non-Blocking)
1.2.5 死锁(Deadlock)、饥饿(Starvation)和活锁(Livelock)
1.3 并发级别
1.3.1 阻塞(Blocking)
1.3.2 无饥饿(Starvation-Free)
1.3.3 无障碍(Obstruction-Free)
1.3.4 无锁(Lock-Free)
1.3.5 无等待(Wait-Free)
1.4 有关并行的两个重要定律
1.4.1 Amdahl定律
1.4.2 Gustafson定律
1.4.3 Amdahl定律和Gustafson定律是否相互矛盾
1.5 回到Java:JMM
1.5.1 原子性(Atomicity)
1.5.2 可见性(Visibility)
1.5.3 有序性(Ordering)
1.5.4 哪些指令不能重排:Happen-Before规则
1.6 参考文献
D2章 Java并行程序基础
2.1 有关线程你必须知道的事
2.2 初始线程:线程的基本操作
2.2.1 新建线程
2.2.2 终止线程
2.2.3 线程中断
2.2.4 等待(wait)和通知(Dtify)
2.2.5 挂起(suspend)和继续执行(resume)线程
2.2.6 等待线程结束(join)和谦让(yield)
2.3 volatile与Java内存模型(JMM)
2.4 分门别类的管理:线程组
2.5 驻守后台:守护线程(Daemon)
2.6 先干重要的事:线程优先级
2.7 线程安全的概念与synchronized
2.8 程序中的幽灵:隐蔽的错误
2.8.1 无提示的错误案例
2.8.2 并发下的ArrayList
2.8.3 并发下诡异的HashMap
2.8.4 初学者常见问题:错误的加锁
2.9 参考文献
D3章 JDK并发包
3.1 多线程的团队协作:同步控制
3.1.1 synchronized的功能扩展:重入锁
3.1.2 重入锁的好搭档:Condition条件
3.1.3 允许多个线程同时访问:信号量(Semaphore)
3.1.4 ReadWriteLock读写锁
3.1.5 DJS器:CountDownLatch
3.1.6 循环栅栏:CyclicBarrier
3.1.7 线程阻塞工具类:LockSupport
3.2 线程复用:线程池
3.2.1 什么是线程池
3.2.2 不要重复发明轮子:JDK对线程池的支持
3.2.3 刨根究底:核心线程池的内部实现
3.2.4 超负载了怎么办:拒绝策略
3.2.5 自定义线程创建:ThreadFactory
3.2.6 我的应用我做主:扩展线程池
3.2.7 合理的选择:优化线程池线程数量
3.2.8 堆栈去哪里了:在线程池中寻找堆栈
3.2.9 分而治之:Fork/Join框架
3.3 不要重复发明轮子:JDK的并发容器
3.3.1 超好用的工具类:并发集合简介
3.3.2 线程安全的HashMap
3.3.3 有关List的线程安全
3.3.4 高效读写的队列:深度剖析ConcurrentLinkedQueue
3.3.5 高效读取:不变模式下的CopyOnWriteArrayList
3.3.6 数据共享通道:BlockingQueue
3.3.7 随机数据结构:跳表(SkipList)
3.4 参考资料
D4章 锁的优化及注意事项
4.1 有助于提高"锁"性能的几点建议
4.1.1 减小锁持有时间
4.1.2 减小锁粒度
4.1.3 读写分离锁来替换D占锁
4.1.4 锁分离
4.1.5 锁粗化
4.2 Java虚拟机对锁优化所做的努力
4.2.1 锁偏向
4.2.2 轻量级锁
4.2.3 自旋锁
4.2.4 锁消除
4.3 人手一支笔:ThreadLocal
4.3.1 ThreadLocal的简单使用
4.3.2 ThreadLocal的实现原理
4.3.3 对性能有何帮助
4.4 无锁
4.4.1 与众不同的并发策略:比较交换(CAS)
4.4.2 无锁的线程安全整数:AtomicInteger
4.4.3 Java中的指针:Unsafe类
4.4.4 无锁的对象引用:AtomicReference
4.4.5 带有时间戳的对象引用:AtomicStampedReference
4.4.6 数组也能无锁:AtomicIntegerArray
4.4.7 让普通变量也享受原子操作:AtomicIntegerFieldUpdater
4.4.8 挑战无锁算法:无锁的Vector实现
4.4.9 让线程之间互相帮助:细看SynchroDusQueue的实现
4.5 有关死锁的问题
4.6 参考文献
D5章 并行模式与算法
5.1 探讨单例模式
5.2 不变模式
5.3 生产者-消费者模式
5.4 高性能的生产者-消费者:无锁的实现
5.4.1 无锁的缓存框架:Disruptor
5.4.2 用Disruptor实现生产者-消费者案例
5.4.3 提高消费者的响应时间:选择合适的策略
5.4.4 CPU Cache的优化:解决伪共享问题
5.5 Future模式
5.5.1 Future模式的主要角色
5.5.2 Future模式的简单实现
5.5.3 JDK中的Future模式
5.6 并行流水线
5.7 并行搜索
5.8 并行排序
5.8.1 分离数据相关性:奇偶交换排序
5.8.2 改进的插入排序:希尔排序
5.9 并行算法:矩阵乘法
5.10 准备好了再通知我:网络NIO
5.10.1 基于Socket的服务端的多线程模式
5.10.2 使用NIO进行网络编程
5.10.3 使用NIO来实现客户端
5.11 读完了再通知我:AIO
5.11.1 AIO EchoServer的实现
5.11.2 AIO Echo客户端实现
5.12 参考文献
D6章 Java 8与并发
6.1 Java 8的函数式编程简介
6.1.1 函数作为一等公民
6.1.2 无副作用
6.1.3 申明式的(Declarative)
6.1.4 不变的对象
6.1.5 易于并行
6.1.6 更少的代码
6.2 函数式编程基础
6.2.1 FunctionalInterface注释
6.2.2 接口默认方法
6.2.3 lambda表达式
6.2.4 方法引用
6.3 一步一步走入函数式编程
6.4 并行流与并行排序
6.4.1 使用并行流过滤数据
6.4.2 从集合得到并行流
6.4.3 并行排序
6.5 增强的Future:CompletableFuture
6.5.1 完成了J通知我
6.5.2 异步执行任务
6.5.3 流式调用
6.5.4 CompletableFuture中的异常处理
6.5.5 组合多个CompletableFuture
6.6 读写锁的改进:StampedLock
6.6.1 StampedLock使用示例
6.6.2 StampedLock的小陷阱
6.6.3 有关StampedLock的实现思想
6.7 原子类的增强
6.7.1 更快的原子类:LongAdder
6.7.2 LongAdder的功能增强版:LongAccumulator
6.8 参考文献
D7章 使用Akka构建高并发程序
7.1 新并发模型:Actor
7.2 Akka之Hello World
7.3 有关消息投递的一些说明
7.4 Actor的生命周期
7.5 监督策略
7.6 选择Actor
7.7 消息收件箱(Inbox)
7.8 消息路由
7.9 Actor的内置状态转换
7.10 询问模式:Actor中的Future
7.11 多个Actor同时修改数据:Agent
7.12 像数据库一样操作内存数据:软件事务内存
……
这本书的标题本身就足够吸引我了——“实战Java高并发程序设计”。作为一名在Java开发领域摸爬滚打了好几年,却总是在并发编程方面感觉自己只是停留在“会用”而非“精通”阶段的开发者,我迫切地需要这样一本能够帮我突破瓶颈的书。我翻阅了很多资料,也尝试过一些在线课程,但总觉得碎片化,缺乏系统性。我希望这本书能够从最基础的概念讲起,比如线程的创建与管理,锁的原理与应用,到更复杂的场景,如线程池的设计与优化,并发集合的使用,以及如何有效地处理死锁和活锁等问题。更重要的是,我期待它能通过大量的实际案例和代码示例,让我能够真正理解这些高并发编程的技巧是如何在实际项目中应用的。我希望它不仅仅是理论的堆砌,而是能够让我看到“怎么做”以及“为什么这么做”。我非常期待能够通过这本书,彻底解决我在并发编程方面遇到的各种疑难杂症,写出更稳定、更高效的Java程序。
评分我在寻找一本能让我真正掌握Java并发编程精髓的书籍,尤其是在并发安全性方面。很多时候,我们能够写出运行起来似乎没问题的并发代码,但潜在的竞态条件、数据不一致等问题却很难被发现,直到上线后才暴露出来,那将是灾难性的。我希望这本书能够系统地讲解如何识别和避免这些并发安全问题,比如如何正确地使用`synchronized`关键字和`Lock`接口,如何理解`volatile`关键字的真正作用,以及如何安全地使用并发集合类。我还希望能学到一些高级的并发同步机制,比如CAS(Compare-and-Swap)操作的原理以及它在`Atomic`原子类中的应用,以及如何利用这些机制来构建无锁(lock-free)或轻量级锁(<bos>-contention)的高并发数据结构。我希望这本书能够帮助我写出既高效又绝对安全的并发代码。
评分我最近在寻找一本能够让我深入理解Java并发模型底层原理的书籍。市面上关于Java并发的书籍很多,但很多都停留在API的介绍和基本用法的层面,对于“为什么”和“底层是怎么实现的”解释得不够透彻。我希望这本书能够深入剖析JVM的内存模型,讲解Java内存可见性、原子性、有序性的问题是如何通过特定的硬件和JVM指令来实现的。我尤其关心Java内存模型(JMM)对并发程序性能和正确性的影响,以及如何根据JMM的规则来编写无懈可击的并发代码。此外,我对Java提供的各种并发工具类,如`CountDownLatch`、`CyclicBarrier`、`Semaphore`等,它们的内部实现机制也充满了好奇。我希望这本书能够通过清晰的图解和深入的源码分析,让我彻底弄懂这些工具类的工作原理,从而在实际开发中能够更灵活、更高效地运用它们,构建出健壮可靠的高并发系统。
评分作为一名对Java性能优化充满热情的开发者,我一直对高并发场景下的性能调优技巧非常感兴趣。“实战Java高并发程序设计”这个书名让我眼前一亮。我希望这本书能够深入探讨Java虚拟机(JVM)在处理高并发时的内存管理、垃圾回收(GC)策略以及线程调度机制。我希望能够学到如何通过分析GC日志来识别性能瓶颈,如何选择合适的GC算法来应对不同的并发负载,以及如何调整JVM参数来优化内存使用和吞吐量。同时,我也期待书中能够讲解如何使用Java的性能分析工具,如JProfiler、VisualVM等,来定位并发程序中的性能热点,并提供具体的优化方案。我希望这本书能教会我如何深入JVM层面,从根本上解决高并发程序中的性能问题,让我的程序跑得更快、更稳定。
评分对于一本名为“实战Java高并发程序设计”的书,我最期待的是它能够提供一套行之有效的解决高并发问题的框架和方法论。我是一名架构师,在设计和维护大型分布式系统时,高并发是绕不开的难题。我需要的不仅仅是针对单个Java程序优化并发性能的技巧,更希望能够获得在大规模并发环境下,如何进行系统设计、如何选择合适的并发模型、如何进行性能瓶颈分析和调优的指导。我希望能从书中学习到如何设计能够水平扩展的并发服务,如何处理海量请求的负载均衡,如何有效地利用缓存来降低数据库压力,以及如何在分布式环境中保证数据的一致性和高可用性。我非常看重书中关于如何构建可伸缩、容错性强的并发系统的经验和最佳实践,希望能从中汲取养分,提升自己设计和构建高并发系统的能力。
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等,本站所有链接都为正版商品购买链接。
© 2025 windowsfront.com All Rights Reserved. 静流书站 版权所有