书籍详情
深入学习:Java多线程编程
作者:(美)Bil Lewis,(美)Daniel J.Berg著;关欣[等]译
出版社:电子工业出版社
出版时间:2000-12-01
ISBN:9787505363694
定价:¥30.00
购买这本书可以去
内容简介
Java技术和多线程编程是当今两大热点。本书着重讨论了如何使用Java技术进行多线程编程,如何提高应用程序的性能,并与另两大多线程序POSIX和Win32进行了经较。本书从基本概念入手,进而介绍线程的生存期、作业调度、同步等原理,在此基础上详细讲解了网络和Internet应用的多线程程序设计。全书针对所介绍的各个知识点分别提供了大量源代码实便,使读者更易理解各项技术。本书可作为高级程序开发人员、高等院校计算机专业高年级学生的参考书。线程调度模型和同步——给出了复杂的实际问题的解决方案。用于网络和Internet应用程序的多线程程序设计。与线程相关的数据:使用和实现。功能强大的OS库可使基于Java多线程编程更加有效。为SMP硬件优化线程性能和设计。用强有力的技术和综合的例程改善基于Java的应用程序性能。
作者简介
暂缺《深入学习:Java多线程编程》作者简介
目录
第1章 简介
第2章 概念
2.1 背景:传统操作系统
2.2 何谓线程
2.3 内核交互作用
2.3.1 并发性与并行性
2.3.2 系统调用
2.3.3 信号
2.3.4 同步
2.3.5 调度
2.4 使用线程的价值
2.4.1 并行性
2.4.2 吞吐量
2.4.3 反应能力
2.4.4 通信
2.4.5 系统资源
2.4.6 分布式对象
2.4.7 一个程序可用于单处理器,也可用于多处理器
2.4.8 程序结构
2.5 哪类程序适合线程
2.5.1 固有MT程序
2.5.2 不太明显的MT程序
2.5.3 自动编线程
2.5.4 不适于线程的程序
2.6 何谓共享内存
2.7 线程标准
2.8 性能
2.8.1 操作系统
2.8.2 NFS
2.8.3 SPECfp 95
2.8.4 SPECint_rate 95
2.8.5 Java基准程序
2.9 小结
第3章 基础
3.1 实现与规范
3.2 线程库
3.3 进程结构
3.4 轻量进程
3.4.1 线程和LWP
3.5 POSIX多线程模型
3.6 系统调用
3.7 信号
3.8 小结
第4章 生存期
4.1 线程生存期
4.1.1 退出线程
4.1.2 可运行接口
4.1.3 等待线程
4.1.4 当前线程
4.1.5 退出进程
4.1.6 挂起线程
4.1.7 注销
4.1.8 ThreadDeath
4.1.9 垃圾收集线程
4.1.10 Zombie
4.1.11 线程还有效吗
4.1.12 再启动线程
4.1.13 示例:创建和连接
4.2 本章中使用的API
4.2.1 java.lang.Thread类
4.2.2 Extensions.InterruptibleThread类
4.2.3 java.lang.Runnable接口
4.3 小结
第5章 作业调度
5.1 各种内核调度模型
5.1.1 很多线程在一个LWP
5.1.2 每个LWP一个线程
5.1.3 多LWP上的多线程(严格)
5.1.4 两级模型
5.2 线程调度
5.2.1 进程争用域
5.2.2 系统争用域
5.3 现场转换
5.3.1 抢先
5.3.2 需要多少LWP
5.3.3 如何在Java中取得这些LWP
5.3.4 修改LWP的调度参数
5.3.5 实时LWP
5.3.6 分配域
5.3.7 将LWP联编到处理器
5.4 Java调度小结
5.5 何时需要关心调度
5.6 本章中使用的API
5.6.1 java.lang.Thread类
5.7 小结
第6章 同步
6.1 同步问题
6.1.1 原子动作和原子指令
6.1.2 关键段
6.1.3 锁定共享数据
6.2 同步变量
6.2.1 互斥
6.2.2 信号量
6.2.3 条件变量
6.2.4 Java等待/通知
6.2.5 InterruptedException
6.2.6 控制队列长度
6.2.7 Java中的POSIX同步方式
6.3 本章中使用的API
6.3.1 java.lang.Object类
6.3.2 Extensions.Semaphore类
6.3.3 Extensions.Mutex类
6.3.4 Extensions.ConditionVar类
6.4 小结
第7章 复杂同步
7.1 复杂锁定单元
7.1.1 读/写锁
7.1.2 优先级继承互斥
7.1.3 FIFO互斥
7.1.4 递归互斥
7.1.5 非阻塞同步
7.1.6 自旋锁
7.2 超时
7.2.1 Elvis和UFO
7.3 其他同步变量
7.3.1 连接
7.3.2 阻挡层
7.3.3 单阻挡层
7.3.4 Win32事件对象
7.3.5 Win32关键段
7.3.6 多等待信号量
7.3.7 互锁指令
7.3.8 消息队列
7.3.9 Win32 I/O完成口
7.3.10 通过流进行通信
7.4 易变性
7.5 性能
7.5.1 条件变量与等待/通知
7.5.2 粗锁与细锁
7.5.3 锁定什么
7.5.4 双检锁定
7.6 同步问题
7.6.1 死锁
7.6.2 竞争条件
7.6.3 恢复死锁
7.6.4 丢失唤醒
7.6.5 InterruptedException
7.7 本章中使用的API
7.7.1 Extensions.RWLock类
7.7.2 Extensions.Barrier类
7.7.3 Extensions.SingleBarrier类
7.8 小结
第8章 TSD
8.1 线程定义的数据
8.2 Java TSD
8.3 本章中的API
8.3.1 java.lang.ThreadLocal类
8.4 小结
第9章 取消
9.1 何谓取消
9.1.1 轮询取消
9.1.2 异步取消
9.1.3 延迟取消
9.1.4 用interrupt()取消延迟
9.1.5 逐次关闭
9.2 interrupt()
9.2.1 不要调用stop()
9.2.2 ThreadDeath
9.2.3 使用stop()实现Thread.exit()
9.2.4 不要退出线程
9.2.5 规定的取消/中断点
9.2.6 不要在中断时取消
9.2.7 管理中断
9.2.8 取消状态
9.3 一个取消的实例
9.4 使用取消
9.4.1 保证有限的CPU时间
9.4.2 中断睡眠线程
9.4.3 麻烦的结果
9.5 清理
9.6 实现enableInterrupts()
9.7 一个取消处理的实例(改进版)
9.8 简单的轮询
9.9 本章中使用的API
9.9.1 java.lang.Thread类
9.9.2 Extensions.InterruptibleThread类
9.10 小结
第10章 细节
10.1 线程组
10.2 线程安全性
10.2.1 实例
10.2.2 一般提示
10.3 守护进程线程
10.4 守护进程线程组
10.5 调用本机程序
10.6 几个相关的方法
10.6.1 栈的大小
10.7 被禁用的方法
10.8 使用JIT(即时)的效果
10.8.1 自适应编译程序
10.9 本章中使用的API
10.9.1 java.lang.Thread类
10.9.2 java.lang.ThreadGroup类
10.10 小结
第11章 库
11.1 本机线程库
11.2 多线程内核程序
11.2.1 对称多进程
11.3 库的安全性
11.3.1 窗口系统
11.3.2 使用不安全库
11.3.3 何时要同步一个类
11.3.4 Java 2中的同步收集
11.4 Java的多线程垃圾收集程序
11.4.1 结束时的锁定
11.5 小结
第12章 设计
12.1 库的安全和热点
12.1.1 使malloc()并发性更好
12.2 操作列表
12.2.1 单线程、全局线程及其互斥
12.2.2 带全局互斥保护数据的全局读写锁(RWLock)
12.2.3 带局部互斥保护数据的全局读写锁(RWLock)
12.2.4 一个局部锁
12.2.5 两个局部锁
12.2.6 带局部互斥的局部读写锁(RWLock)
12.3 程序设计
12.4 设计模型
12.5 小结
第13章 RMI
13.1 远程方法调用(RMI)
13.1.1 发送远程引用
13.1.2 RMI使用的线程
13.1.3 RMI的死锁问题
13.1.4 远程垃圾收集
13.2 小结
第14章 工具
14.1 静态锁分析器
14.2 使用Thread-Aware、Graphical Debugger
14.3 Proctool
14.4 TNFview
14.5 小结
第15章 性能
15.1 优化:对象与缺点
15.2 CPU时间、I/O时间、竞争
15.2.1 CPU
15.2.2 内存延迟
15.2.3 内存带宽
15.2.4 I/O等待
15.2.5 竞争
15.2.6 吞吐量与等待时间
15.3 加速的局限
15.3.1 Amdahl定律
15.3.2 性能瓶颈
15.4 基准的和可重复的测试
15.4.1 是真快吗
15.4.2 总体性能优化
15.4.3 特定线程的性能优化
15.4.4 处理多个开路套接字
15.5 关于NFS
15.6 小结
第16章 硬件
16.1 多处理器类型
16.1.1 共享存储器的对称多处理器
16.2 总线结构
16.2.1 LoadLocked/StoreConditional和比较与交换
16.2.2 易变性
16.3 内存系统
16.3.1 减少高速缓存的未命中率
16.4 小结
第17章 范例
17.1 线程与窗口
17.2 显示瞬间情况(Memory.java)
17.3 套接字服务器(主/从版)
17.4 套接字服务器(生产者/消费者版)
17.5 进行本机调用pthread_setconcurrency()
17.6 POSIX同步的真正实现
17.7 鲁棒型中断服务器
17.8 用于Java的磁盘性能
17.9 Web上的其他程序
17.10 小结
附录A Internet
A.1 线程新闻组
A.2 程序清单
A.3 供应商的线程页面
A.4 线程研究
A.5 免费工具
A.6 其他指针
A.7 作者网址
附录B 参考书
B.1 介绍线程的参考书
B.1.1 Java线程
B.1.2 POSIX线程
B.1.3 Win32线程
B.2 相关的参考书
附录C 定时
附录D API
D.1 函数说明
D.2 java.lang.Thread类
D.3 java.lang.Runnable接口
D.4 java.lang.Object类
D.5 java.lang.ThreadLocal类
D.6 java.lang.ThreadGroup类
D.7 Extensions.InterruptibleThread类
D.8 Extensions.Semaphore类
D.9 Extensions.Mutex类
D.10 Extensions.ConditionVar类
D.11 Extensions.RWLock类
D.12 Extensions.Barrier类
D.13 Extensions.SingleBarrier类
词汇
第2章 概念
2.1 背景:传统操作系统
2.2 何谓线程
2.3 内核交互作用
2.3.1 并发性与并行性
2.3.2 系统调用
2.3.3 信号
2.3.4 同步
2.3.5 调度
2.4 使用线程的价值
2.4.1 并行性
2.4.2 吞吐量
2.4.3 反应能力
2.4.4 通信
2.4.5 系统资源
2.4.6 分布式对象
2.4.7 一个程序可用于单处理器,也可用于多处理器
2.4.8 程序结构
2.5 哪类程序适合线程
2.5.1 固有MT程序
2.5.2 不太明显的MT程序
2.5.3 自动编线程
2.5.4 不适于线程的程序
2.6 何谓共享内存
2.7 线程标准
2.8 性能
2.8.1 操作系统
2.8.2 NFS
2.8.3 SPECfp 95
2.8.4 SPECint_rate 95
2.8.5 Java基准程序
2.9 小结
第3章 基础
3.1 实现与规范
3.2 线程库
3.3 进程结构
3.4 轻量进程
3.4.1 线程和LWP
3.5 POSIX多线程模型
3.6 系统调用
3.7 信号
3.8 小结
第4章 生存期
4.1 线程生存期
4.1.1 退出线程
4.1.2 可运行接口
4.1.3 等待线程
4.1.4 当前线程
4.1.5 退出进程
4.1.6 挂起线程
4.1.7 注销
4.1.8 ThreadDeath
4.1.9 垃圾收集线程
4.1.10 Zombie
4.1.11 线程还有效吗
4.1.12 再启动线程
4.1.13 示例:创建和连接
4.2 本章中使用的API
4.2.1 java.lang.Thread类
4.2.2 Extensions.InterruptibleThread类
4.2.3 java.lang.Runnable接口
4.3 小结
第5章 作业调度
5.1 各种内核调度模型
5.1.1 很多线程在一个LWP
5.1.2 每个LWP一个线程
5.1.3 多LWP上的多线程(严格)
5.1.4 两级模型
5.2 线程调度
5.2.1 进程争用域
5.2.2 系统争用域
5.3 现场转换
5.3.1 抢先
5.3.2 需要多少LWP
5.3.3 如何在Java中取得这些LWP
5.3.4 修改LWP的调度参数
5.3.5 实时LWP
5.3.6 分配域
5.3.7 将LWP联编到处理器
5.4 Java调度小结
5.5 何时需要关心调度
5.6 本章中使用的API
5.6.1 java.lang.Thread类
5.7 小结
第6章 同步
6.1 同步问题
6.1.1 原子动作和原子指令
6.1.2 关键段
6.1.3 锁定共享数据
6.2 同步变量
6.2.1 互斥
6.2.2 信号量
6.2.3 条件变量
6.2.4 Java等待/通知
6.2.5 InterruptedException
6.2.6 控制队列长度
6.2.7 Java中的POSIX同步方式
6.3 本章中使用的API
6.3.1 java.lang.Object类
6.3.2 Extensions.Semaphore类
6.3.3 Extensions.Mutex类
6.3.4 Extensions.ConditionVar类
6.4 小结
第7章 复杂同步
7.1 复杂锁定单元
7.1.1 读/写锁
7.1.2 优先级继承互斥
7.1.3 FIFO互斥
7.1.4 递归互斥
7.1.5 非阻塞同步
7.1.6 自旋锁
7.2 超时
7.2.1 Elvis和UFO
7.3 其他同步变量
7.3.1 连接
7.3.2 阻挡层
7.3.3 单阻挡层
7.3.4 Win32事件对象
7.3.5 Win32关键段
7.3.6 多等待信号量
7.3.7 互锁指令
7.3.8 消息队列
7.3.9 Win32 I/O完成口
7.3.10 通过流进行通信
7.4 易变性
7.5 性能
7.5.1 条件变量与等待/通知
7.5.2 粗锁与细锁
7.5.3 锁定什么
7.5.4 双检锁定
7.6 同步问题
7.6.1 死锁
7.6.2 竞争条件
7.6.3 恢复死锁
7.6.4 丢失唤醒
7.6.5 InterruptedException
7.7 本章中使用的API
7.7.1 Extensions.RWLock类
7.7.2 Extensions.Barrier类
7.7.3 Extensions.SingleBarrier类
7.8 小结
第8章 TSD
8.1 线程定义的数据
8.2 Java TSD
8.3 本章中的API
8.3.1 java.lang.ThreadLocal类
8.4 小结
第9章 取消
9.1 何谓取消
9.1.1 轮询取消
9.1.2 异步取消
9.1.3 延迟取消
9.1.4 用interrupt()取消延迟
9.1.5 逐次关闭
9.2 interrupt()
9.2.1 不要调用stop()
9.2.2 ThreadDeath
9.2.3 使用stop()实现Thread.exit()
9.2.4 不要退出线程
9.2.5 规定的取消/中断点
9.2.6 不要在中断时取消
9.2.7 管理中断
9.2.8 取消状态
9.3 一个取消的实例
9.4 使用取消
9.4.1 保证有限的CPU时间
9.4.2 中断睡眠线程
9.4.3 麻烦的结果
9.5 清理
9.6 实现enableInterrupts()
9.7 一个取消处理的实例(改进版)
9.8 简单的轮询
9.9 本章中使用的API
9.9.1 java.lang.Thread类
9.9.2 Extensions.InterruptibleThread类
9.10 小结
第10章 细节
10.1 线程组
10.2 线程安全性
10.2.1 实例
10.2.2 一般提示
10.3 守护进程线程
10.4 守护进程线程组
10.5 调用本机程序
10.6 几个相关的方法
10.6.1 栈的大小
10.7 被禁用的方法
10.8 使用JIT(即时)的效果
10.8.1 自适应编译程序
10.9 本章中使用的API
10.9.1 java.lang.Thread类
10.9.2 java.lang.ThreadGroup类
10.10 小结
第11章 库
11.1 本机线程库
11.2 多线程内核程序
11.2.1 对称多进程
11.3 库的安全性
11.3.1 窗口系统
11.3.2 使用不安全库
11.3.3 何时要同步一个类
11.3.4 Java 2中的同步收集
11.4 Java的多线程垃圾收集程序
11.4.1 结束时的锁定
11.5 小结
第12章 设计
12.1 库的安全和热点
12.1.1 使malloc()并发性更好
12.2 操作列表
12.2.1 单线程、全局线程及其互斥
12.2.2 带全局互斥保护数据的全局读写锁(RWLock)
12.2.3 带局部互斥保护数据的全局读写锁(RWLock)
12.2.4 一个局部锁
12.2.5 两个局部锁
12.2.6 带局部互斥的局部读写锁(RWLock)
12.3 程序设计
12.4 设计模型
12.5 小结
第13章 RMI
13.1 远程方法调用(RMI)
13.1.1 发送远程引用
13.1.2 RMI使用的线程
13.1.3 RMI的死锁问题
13.1.4 远程垃圾收集
13.2 小结
第14章 工具
14.1 静态锁分析器
14.2 使用Thread-Aware、Graphical Debugger
14.3 Proctool
14.4 TNFview
14.5 小结
第15章 性能
15.1 优化:对象与缺点
15.2 CPU时间、I/O时间、竞争
15.2.1 CPU
15.2.2 内存延迟
15.2.3 内存带宽
15.2.4 I/O等待
15.2.5 竞争
15.2.6 吞吐量与等待时间
15.3 加速的局限
15.3.1 Amdahl定律
15.3.2 性能瓶颈
15.4 基准的和可重复的测试
15.4.1 是真快吗
15.4.2 总体性能优化
15.4.3 特定线程的性能优化
15.4.4 处理多个开路套接字
15.5 关于NFS
15.6 小结
第16章 硬件
16.1 多处理器类型
16.1.1 共享存储器的对称多处理器
16.2 总线结构
16.2.1 LoadLocked/StoreConditional和比较与交换
16.2.2 易变性
16.3 内存系统
16.3.1 减少高速缓存的未命中率
16.4 小结
第17章 范例
17.1 线程与窗口
17.2 显示瞬间情况(Memory.java)
17.3 套接字服务器(主/从版)
17.4 套接字服务器(生产者/消费者版)
17.5 进行本机调用pthread_setconcurrency()
17.6 POSIX同步的真正实现
17.7 鲁棒型中断服务器
17.8 用于Java的磁盘性能
17.9 Web上的其他程序
17.10 小结
附录A Internet
A.1 线程新闻组
A.2 程序清单
A.3 供应商的线程页面
A.4 线程研究
A.5 免费工具
A.6 其他指针
A.7 作者网址
附录B 参考书
B.1 介绍线程的参考书
B.1.1 Java线程
B.1.2 POSIX线程
B.1.3 Win32线程
B.2 相关的参考书
附录C 定时
附录D API
D.1 函数说明
D.2 java.lang.Thread类
D.3 java.lang.Runnable接口
D.4 java.lang.Object类
D.5 java.lang.ThreadLocal类
D.6 java.lang.ThreadGroup类
D.7 Extensions.InterruptibleThread类
D.8 Extensions.Semaphore类
D.9 Extensions.Mutex类
D.10 Extensions.ConditionVar类
D.11 Extensions.RWLock类
D.12 Extensions.Barrier类
D.13 Extensions.SingleBarrier类
词汇
猜您喜欢