前言 1
第一章 Thread导论 9
Java术语 9
关于范例 12
为何要用Thread? 14
总结 17
第二章 Thread的创建与管理 18
什么是Thread? 18
创建Thread 22
Thread的生命周期 30
两种停止Thread的方式 34
Runnable Interface 38
Thread与对象 42
总结 43
第三章 数据同步 45
Synchronized关键字 45
Volatile关键字 48
更多Race Condition的讨论 50
明确的(explicit)Locking 56
Lock Scope 59
选择Locking机制 61
Nested Lock 63
死锁 65
Lock公平(Fairness) 71
总结 72
第四章 Thread Notification 74
等待与通知 74
条件变量 82
总结 85
第五章 极简同步技巧 86
能避免同步吗? 86
Atomic变量 91
Thread局部变量 110
总结 112
同步术语 114
第六章 高级同步议题 114
J2SE 5.0中加入的同步Class 116
防止死锁 122
死锁检测 128
Lock饥饿 141
总结 145
第七章 Thread与Swing 146
Swing Threading的限制 146
事件派发Thread的处理 147
使用invokeLater()与invokeAndWait() 148
长时间运行的事件回调 150
总结 153
Collection Class的概述 155
第八章 Thread与Collection Class 155
同步与Collection Class 159
生产者/消费者模式 166
使用Collection Class 168
总结 170
第九章 Thread调度 171
Thread调度的概述 172
以Thread优先级来调度 179
常见Threading的实现 180
总结 186
为何要用Thread Pool? 188
第十章 Thread Pool 188
Executor 191
使用Thread Pool 192
Queue与大小 194
创建Thread 198
Callable Task与Future结果 199
单—Thread化的访问 201
总结 202
第十一章 Task的调度 204
Task调度的概述 204
java.util.Timer Class 206
javax.swing.Timer Class 211
ScheduledThreadPoolExecutor Class 214
总结 221
第十二章 Thread与I/O 223
传统的I/O服务器 224
新的I/O服务器 233
被中断的I/O 242
总结 245
第十三章 各种Thread议题 247
Thread Group 247
Thread与Java安全性 249
Daemon Thread 251
Thread与Class的加载 252
Thread与异常处理 254
Thread、Stack、内存的使用 257
总结 261
第十四章 Thread性能 262
性能的概述 262
同步的Collection 264
Atomic变量与有竞争的同步 265
Thread的创建与Thread Pool 267
总结 268
第十五章 多处理器计算机的并行化循环 270
对单—Threaded程序的并行化 271
多处理器扩大(scaling) 296
总结 307
附录 被撤换的Threading功能 309
索引 327