图书介绍

深入学习:Java多线程编程【2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载】

深入学习:Java多线程编程
  • (美)Bil Lewis,(美)Daniel J.Berg著;关欣,史宗海等译 著
  • 出版社: 北京:电子工业出版社
  • ISBN:7505363697
  • 出版时间:2000
  • 标注页数:278页
  • 文件大小:24MB
  • 文件页数:292页
  • 主题词:

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

深入学习:Java多线程编程PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

前言页1

第1章 简介1

第2章 概念4

2.1 背景:传统操作系统4

2.2 何谓线程6

2.3 内核交互作用8

2.3.1 并发性与并行性8

2.4 使用线程的价值9

2.3.5 调度9

2.3.4 同步9

2.3.3 信号9

2.3.2 系统调用9

2.4.1 并行性10

2.4.2 吞吐量10

2.4.3 反应能力11

2.4.4 通信11

2.4.5 系统资源12

2.4.6 分布式对象12

2.5.1 固有MT程序13

2.5 哪类程序适合线程13

2.4.7 一个程序可用于单处理器,也可用于多处理器13

2.4.8 程序结构13

2.5.2 不太明显的MT程序14

2.5.3 自动编线程14

2.5.4 不适于线程的程序15

2.6 何谓共享内存15

2.7 线程标准15

2.8 性能16

2.8.1 操作系统16

2.8.2 NFS16

2.8.3 SPECfp9517

2.8.4 SPECint-rate9517

2.8.5 Java基准程序17

2.9 小结17

第3章 基础18

3.1 实现与规范18

3.2 线程库18

3.3 进程结构19

3.4 轻量进程20

3.4.1 线程和LWP21

3.5 POSIX多线程模型23

3.6 系统调用23

3.7 信号25

3.8 小结25

第4章 生存期26

4.1 线程生存期26

4.1.2 可运行接口27

4.1.1 退出线程27

4.1.3 等待线程28

4.1.4 当前线程29

4.1.5 退出进程30

4.1.6 挂起线程30

4.1.7 注销30

4.1.8 ThreadDeath31

4.1.9 垃圾收集线程31

4.1.12 再启动线程32

4.1.11 线程还有效吗32

4.1.10 Zombie32

4.1.13 示例:创建和连接33

4.2 本章中使用的API37

4.2.1 java.lang.Thread类37

4.2.2 Extensions.Interruptible Thread类39

4.2.3 java.lang.Runnable接口39

4.3 小结39

5.1.1 很多线程在一个LWP40

5.1 各种内核调度模型40

第5章 作业调度40

5.1.2 每人LWP一个线程41

5.1.3 多LWP上的多线程(严格)41

5.1.4 两级模型41

5.2 线程调度42

5.2.1 进程争用域43

5.2.2 系统争用域46

5.3 现场转换46

5.3.2 需要多少LWP48

5.3.1 抢先48

5.3.4 修改LWP的调度参数49

5.3.3 如何在Java中取得这些LWP49

5.3.5 实时LWP50

5.3.6 分配域50

5.3.7 将LWP联编到处理器50

5.4 Java调度小结51

5.6 本章中使用的API52

5.6.1 java.lang.Thread类52

5.5 何时需要关心调度52

5.7 小结53

第6章 同步54

6.1 同步问题54

6.1.1 原子动作和原子指令54

6.1.2 关键段55

6.1.3 锁定共享数据55

6.2 同步变量56

6.2.1 互斥56

6.2.2 信号量61

6.2.3 条件变量65

6.2.4 Java等待/通知67

6.2.5 InterruptedException68

6.2.6 控制队列长度69

6.2.7 Java中的POSIX同步方式71

6.3 本章中使用的API77

6.3.1 java.lang.Object类77

6.3.4 Extensions.Condition Var类78

6.3.3 Extensions.Mutex类78

6.3.2 Extensions.Semaphore类78

6.4 小结79

第7章 复杂同步80

7.1 复杂锁定单元80

7.1.1 读/写锁80

7.1.2 估先级继承互斥83

7.1.3 FIFO互斥84

7.1.4 递归互斥84

7.1.6 自旋锁85

7.1.5 非阻塞同步85

7.2 超时86

7.2.1 Elvis和UFO87

7.3 其他同步变量88

7.3.1 连接88

7.3.2 阻挡层88

7.3.3 单阻挡层89

7.3.4 Win32事件对象90

7.3.8 消息队列91

7.3.9 Win32 I/O完成口91

7.3.5 Win32关键段91

7.3.7 互锁指令91

7.3.6 多等待信号量91

7.3.10 通过流进行通信92

7.4 易变性92

7.5 性能92

7.5.1 条件变量与等待/通知92

7.5.3 锁定什么93

7.5.2 粗锁与细锁93

7.5.4 双检锁定94

7.6 同步问题95

7.6.1 死锁95

7.6.2 竞争条件97

7.6.3 恢复死锁97

7.6.4 丢失唤醒98

7.6.5 InterruptedException99

7.7.2 Extensions.Barrier类100

7.7.1 Extensions.RWlock类100

7.7 本章中使用的API100

7.7.3 Extensions.SingleBarrier101

7.8 小结102

第8章 TSD103

8.1 线程定义的数据103

8.2 Java TSD105

8.3 本章中的API107

8.3.1 java.lang.ThreadLocal类107

8.4 小结107

9.1 何谓取消108

第9章 取消108

9.1.1 轮询取消109

9.1.2 异步取消109

9.1.3 延迟取消109

9.1.4 用interrupt()取消延迟109

9.1.5 逐次关闭110

9.2 interrupt()110

9.2.2 ThreadDeath111

9.2.3 使用stop()实现Thread.exit()111

9.2.1 不要调用stop()111

9.2.4 不要退出线程112

9.2.5 规定的取消/中断点112

9.2.6 不要在中断时取消113

9.2.7 管理中断114

9.2.8 取消状态117

9.3 一个取消的实例118

9.4 使用取消122

9.4.1 保证有限的CPU时间123

9.4.3 麻烦的结果125

9.4.2 中断睡眠线程125

9.5 清理126

9.6 实现enableInterrupts()127

9.7 一个取消处理的实例(改进版)129

9.8 简单的轮询129

9.9 本章中使用的API130

9.9.1 java.lang.Thread类130

9.9.2 Extensions.Interruptible Thread类130

9.10 小结131

10.1 线程组132

第10章 细节132

10.2 线程安全性133

10.2.1 实例136

10.2.2 一般提示138

10.3 守护进程线程138

10.4 守护进程线程组139

10.5 调用本机程序139

10.8 使用JIT(即时)的效果141

10.7 被禁用的方法141

10.6 几个相关的方法141

10.6.1 栈的大小141

10.8.1 自适应编译程序142

10.9 本章中使用的API142

10.9.1 java.lang.Thread类142

10.9.2 java.lang.ThreadGroup类143

10.10 小结147

第11章 库148

11.1 本机线程库148

11.2 多线程内核程序148

11.2.1 对称多进程149

11.3 库的安全性150

11.3.1 窗口系统151

11.3.2 使用不安全库153

11.3.3 何时要同步一个类154

11.3.4 Java2 中的同步收集154

11.4.1 结束时的锁定155

11.5 小结155

11.4 Java的多线程垃圾收集程序155

第12章 设计156

12.1 库的安全和热点156

12.1.1 使malloe()并发性更好158

12.2 操作列表160

12.1.1 单线程、全局线程及其互斥161

12.2.2 带全局互斥保护数据的全局读写锁(RWLock)162

12.2.3 带局部互斥保护数据的全局读写锁(RWLock)163

12.2.4 一个局部锁164

12.2.5 两个局部锁165

12.2.6 带局部互斥的局部读写锁(RWLock)165

12.3 程序设计166

12.4 设计模型169

12.5 小结170

第13章 RMI171

13.1 远程方法调用(RMI)171

13.1.1 发送远程引用172

13.2 小结178

13.1.4 远程垃圾收集178

13.1.2 RMI使用的线程178

13.1.3 RMI的死锁问题178

第14章 工具180

14.1 静态锁分析器180

14.2 使用Thread-Aware、Graphical Debugger180

14.3 Proctool182

14.4 TNFview183

14.5 小结187

15.1 优化:对象与缺点188

第15章 性能188

15.2 CPU时间、I/O时间、竞争190

15.2.1 CPU190

15.2.2 内存延迟190

15.2.3 内存带宽191

15.2.4 I/O等待191

15.2.5 竞争191

15.2.6 吞吐量与等待时间191

15.3 加速的局限192

15.3.1 Amdahl定律194

15.3.2 性能瓶颈195

15.4 基准的和可重复的测试195

15.4.1 是真快吗196

15.4.2 总体性能优化197

15.4.3 特定线程的性能优化199

15.4.4 处理多个开路套接字200

15.5 关于NFS201

15.6 小结202

16.1.1 共享存储器的对称多处理器203

16.1 多处理器类型203

第16章 硬件203

16.2 总线结构205

16.2.1 LoadLockked/StoreConditional和比较与交换210

6.2.2 易变性212

16.3 内存系统213

16.3.1 减少高速缓存的未命中率213

16.4 小结215

第17章 范例216

17.1 线程与窗口216

17.2 显示瞬间情况(Memory.java)221

17.3 套接字服务器(主/从版)222

17.4 套接字服务器(生产者/消费者版)223

17.5 进行本机调用pthread_setconcurreney()230

17.6 POSIX同步的真正实现231

17.7 鲁棒型中断服务器233

17.8 用于Java的磁盘性能243

17.9 Web上的其他程序248

17.10 小结248

A.2 程序清单249

A.3 供应商的线程页面249

附录A Internet249

A.1 线程新闻组249

A.4 线程研究250

A.5 免费工具250

A.6 其他指针250

A.7 作者网址251

B.1.2 POSIX线程252

B.1.1 Java线程252

B.1 介绍线程的参考书252

附录B 参考书252

B.1.3 Win32线程253

B.2 相关的参考书253

附录C 定时255

附录D API258

D.1 函数说明258

D.2 java.lang.Thread类258

D.5 java.lang.ThreadLocal类263

D.4 java.lang.Object类263

D.3 java.lang.Runnable接口263

D.6 java.lang.ThreadGroup类264

D.7 Extensions.Interruptible Thread类268

D.8 Extensions.Semaphore类268

D.9 Extensions.Mutex类269

D.10 Extensions.Condition Var类269

D.11 Extensions.RWLock类270

D.12 Extensions.Barrier类270

D.13 Extensions.SingleBarrier类271

词汇272

热门推荐