• 图解Java并发编程【正版新书】
  • 图解Java并发编程【正版新书】
  • 图解Java并发编程【正版新书】
  • 图解Java并发编程【正版新书】
  • 图解Java并发编程【正版新书】
21年品牌 40万+商家 超1.5亿件商品

图解Java并发编程【正版新书】

正版新书出版社直发可开发票,支持7天无理由

80.2 7.3折 109.9 全新

仅1件

江苏无锡
认证卖家担保交易快速发货售后保障

作者汪建

出版社人民邮电出版社

ISBN9787115561732

出版时间2021-10

装帧平装

开本16开

定价109.9元

货号1202502576

上书时间2024-07-02

   商品详情   

品相描述:全新
商品描述
作者简介
    汪建,笔名seaboat,毕业于广东工业大学光信息科学与技术专业,毕业后从事各类业务系统、中间件、基础架构、人工智能系统等研发工作,目前致力于用AI提升企业业务系统效率以节约人力成本擅长T母管计人知能管法白然言外理计复机视觉、架构、分布式、高并发、大数据、搜索引擎等方面的技术,会使用大多数编程语言,更擅长Java、Python和C++。平时喜欢看书、运动、写作、编程、绘画。崇尚开源,崇尚技术自由。已出版的图书有《图解数据结构与算法》《Tomcat内核设计剖析》。
    个人博客:blog.csdn.net/wangyangzhizhou。
    个人公众号:远洋号。

目录
章线程机制1

1.1线程是什么1

1.2线程的映射3

1.2.1多对一映射4

1.2.2一对一映射4

1.2.3多对多映射5

1.2.4Java层到内核层6

1.3Java线程的状态7

1.4Java线程的调度10

1.5Java线程的优先级与执行机制11

1.6Java线程的CPU时间14

1.7Java线程的yield操作15

1.8Java线程的sleep操作17

1.9Java线程的Interrupt操作20

1.9.1可运行状态的中断23

1.9.2阻塞/等待状态的中断23

1.9.3经典中断实现方式24

1.9.4park的特殊中断26

1.10Java线程的阻塞与唤醒26

1.11Java线程的join操作34

第2章线程I/O模型38

2.1线程与阻塞I/O38

2.1.1单线程阻塞I/O模型39

2.1.2多线程阻塞I/O模型40

2.2线程与非阻塞I/O模型41

2.2.1应用层I/O多路复用43

2.2.2内核I/O多路复用43

2.2.3内核回调事件驱动I/O44

2.3Java多线程非阻塞I/O模型46

2.4多线程带来了什么48

2.4.1提升执行效率49

2.4.2提升用户体验50

2.4.3让编码更难50

2.4.4资源开销与上下文切换开销51

第3章Java内存模型53

3.1计算机的运行53

3.2Java内存模型56

3.3volatile能否保证线程安全59

3.4happens-before原则62

3.4.1单线程原则65

3.4.2锁原则66

3.4.3volatile原则67

3.4.4线程start原则67

3.4.5线程join原则68

3.4.6线程interrupt原则68

3.4.7finalize原则69

3.4.8传递原则70

3.5Java指令重排70

第4章并发知识75

4.1synchronized互斥锁75

4.1.1作用在对象方法上76

4.1.2作用在类静态方法上79

4.1.3作用在对象方法里面80

4.1.4作用在类静态方法里面81

4.2乐观的并发策略85

4.3自旋锁87

4.3.1UMA架构与NUMA架构88

4.3.2原始自旋锁90

4.3.3排队自旋锁91

4.3.4CLH锁93

4.3.5MCS锁95

4.4线程饥饿97

4.4.1synchronized饥饿97

4.4.2优先级饥饿99

4.4.3线程自旋饥饿100

4.4.4等待唤醒饥饿101

4.4.5公平性解决饥饿102

4.5数据竞争104

4.6竞争条件108

4.6.1线程执行顺序的不确定性110

4.6.2并发机制111

4.7死锁113

4.7.1锁的顺序化116

4.7.2资源合并116

4.7.3避免锁嵌套117

4.7.4锁超时机制117

4.7.5抢占资源机制118

4.7.6撤销线程机制118

4.7.7死锁的检测119

第5章AQS同步器120

5.1什么是AQS同步器120

5.2AQS的等待队列与状态转换120

5.3AQS的独占锁与共享锁125

5.4AQS独占锁获取与释放127

5.4.1获取独占锁的逻辑128

5.4.2尝试获取独占锁130

5.4.3入队操作逻辑130

5.4.4入队后的操作132

5.4.5虚节点可能消失133

5.4.6取消锁获取操作134

5.4.7唤醒后继节点136

5.4.8释放独占锁的逻辑137

5.5AQS共享锁获取与释放138

5.5.1获取共享锁的逻辑138

5.5.2入队操作140

5.5.3入队后的操作140

5.5.4引入PROPAGATE状态143

5.5.5释放共享锁的逻辑146

5.6AQS的阻塞与唤醒146

5.6.1许可机制148

5.6.2LockSupport示例149

5.6.3park与unpark的顺序150

5.6.4park对中断的响应151

5.6.5park是否会释放锁152

5.6.6LockSupport的实现154

5.7AQS的中断机制156

5.7.1synchronized不支持中断157

5.7.2AQS独占模式的中断158

5.7.3AQS共享模式的中断160

5.8AQS的超时机制161

5.8.1synchronized不支持超时161

5.8.2AQS独占模式的超时162

5.8.3AQS共享模式的超时163

5.9AQS的原子性如何保证164

5.10AQS的自旋锁175

5.11AQS的公平性177

5.12AQS的条件队列179

5.12.1await方法179

5.12.2signal方法182

5.13AQS自定义同步器183

5.13.1AQS设计思想183

5.13.2独占模式184

5.13.3共享模式186

第6章常见的同步器189

6.1常见的同步器189

6.2闭锁192

6.3信号量197

6.3.1非公平模式的实现198

6.3.2公平模式的实现201

6.3.3信号量的使用示例202

6.4循环屏障204

6.5相位器210

6.5.1相位器的主要概念及方法211

6.5.2相位器的3个例子212

6.5.3相位器的状态示意图215

6.5.4相位器的实现原理216

6.6交换器220

6.6.1交换器的实现原理223

6.6.2交换器的单槽模式226

6.6.3交换器的多槽模式228

第7章原子类233

7.1原子整型233

7.1.1一行代码等于原子性吗233

7.1.2volatile能保证原子性吗234

7.1.3synchronized能解决问题吗235

7.1.4AtomicInteger237

7.1.5实现原理238

7.2原子引用239

7.3原子数组243

7.3.1AtomicIntegerArray244

7.3.2AtomicLongArray247

7.3.3AtomicReferenceArray248

7.4原子变量更新器249

第8章阻塞队列254

8.1阻塞队列概述254

8.2数组阻塞队列258

8.3链表阻塞队列263

8.4优先级阻塞队列271

8.5延迟阻塞队列279

8.5.1优先级队列281

8.5.2DelayQueue的阻塞与唤醒283

8.5.3DelayQueue的实现原理284

8.6链表阻塞的双向队列288

第9章锁298

9.1可重入锁298

9.1.1非公平模式的实现299

9.1.2公平模式的实现301

9.1.3公平模式的3个示例302

9.2读写锁305

9.2.1读写锁的性质306

9.2.2简单的实现版本307

9.2.3读写锁的升级与降级308

9.2.4读写锁的实现思想309

9.2.5读写锁的共用状态变量312

9.2.6读写锁的公平/非公平模式313

9.2.7写锁的实现314

9.2.8读锁的实现315

9.2.9读写锁的使用示例317

9.3锁的条件机制318

9.3.1wait/notify模式318

9.3.2Condition320

0章任务执行器322

10.1任务执行器接口322

10.1.1同步执行器322

10.1.2一对一执行器323

10.1.3线程池执行器323

10.1.4串行执行器325

10.2任务执行器的ExecutorService接口326

10.3线程池任务执行器331

10.3.1线程池任务执行器的运行状态332

10.3.2线程池任务执行器的使用示例334

10.3.3线程池任务执行器的实现原理335

1章其他并发工具344

11.1线程本地变量344

11.1.1线程本地变量的使用示例344

11.1.2线程本地变量的3个主要方法346

11.1.3JDK中线程本地变量的实现思想347

11.1.4JDK中线程本地变量的实现源码348

11.1.5线程本地变量的内存泄漏352

11.2写时复制数组列表353

2章C++模拟实现Java线程359

12.1模拟实现Java线程359

12.2模拟实现yield语义365

12.3模拟实现sleep操作367

12.4模拟实现synchronized语义369

12.5模拟实现Interrupt操作372

内容摘要
本书采用图文并茂外加大量案例代码的方式讲解了Java并发编程机制的运行原理。本书分为12章,内容涵盖了线程机制、线程I/O模型、Java内存模型、并发知识、AQS同步器、常见的同步器、原子类、阻塞队列、锁、任务执行器、其他并发工具等内容。此外,还在很后一章介绍了如何使用C++来模拟实现Java线程。本书适合Java中不错开发人员、对Java并发编程机制感兴趣的人员以及Java架构师阅读。

主编推荐
1.采用“图例胜千言”的写作方法进行介绍,通过200多张示意图帮助读者理解知识点,每个重点和关键点均附有相关图示;
2.提供了100多个代码案例来讲解Java并发相关的原理和具体实现,让读者可以从代码的角度理解并发是如何实现的;
3.本书组织结构清晰,由基础概念到高层工具,循序渐进的讲解相关知识点,具备基础的Java编程知识后便可以通过本书学习;
4.讲解的Java并发知识均来源于实际项目,同时本书赠送源代码以及书中的彩图文件,方便读者自己动手在实际项目中练习。

—  没有更多了  —

以下为对购买帮助不大的评价

此功能需要访问孔网APP才能使用
暂时不用
打开孔网APP