第1章 引言 1
1.1 并发性的应用 1
1.1.1 优点 1
1.1.2 限制 2
1.2 概述 3
1.2.1 各章预览 4
1.3 Java并发性支持 5
1.3.1 线程 5
1.3.2 同步 11
1.3.3 等待和通知 12
1.3.4 归纳 15
1.4 深入阅读 18
第2章 安全性 25
2.1 安全对象 25
2.2 不可变对象 26
2.2.1 无状态方法 27
2.3 完全同步对象 27
2.3.1 静态 30
2.3.2 部分同步 30
2.4 包含的对象 32
2.4.1 管理所有权 34
2.5 深入阅读 40
第3章 活性 41
3.1 活性失败 41
3.1.1 死锁 41
3.1.2 平衡推动力 43
3.2 实例变量分析 44
3.2.1 存取程序 44
3.2.2 更新 45
3.2.3 删除同步 45
3.3.1 分割类 50
3.3 分割同步 50
3.3.2 分割锁 53
3.4 深入阅读 56
第4章 依赖于状态的动作 57
4.1 策略 57
4.2 表示状态 60
4.2.1 接口 60
4.2.2 逻辑状态 61
4.2.3 历史和执行状态 62
4.3 防护挂起 62
4.3.1 实现 64
4.3.2 跟踪状态 70
4.3.3 锁存 74
4.3.4 嵌套管程 77
4.4 阻碍 78
4.4.1 定时等待 80
4.5 乐观控制 81
4.5.1 松散同步 83
4.6 深入阅读 87
第5章 并发控制 89
5.1 子类化 89
5.1.1 添加同步 89
5.1.2 继承反常 91
5.1.3 分层防护 92
5.1.4 冲突集 93
5.1.5 读取者和写入者 96
5.2 适配器和授权 98
5.2.1 同步适配器 100
5.2.2 只读适配器 102
5.2.3 扩展原子性 106
5.3 接受者 107
5.3.1 代理编码器 109
5.3.2 事件循环 110
5.3.3 收听者 113
5.4.1 模型 115
5.4 模型和映射 115
5.4.2 映射 116
5.4.3 主动和被动对象 116
5.4.4 并发对象 117
5.5 深入阅读 118
第6章 线程中的服务 120
6.1 风格与策略 120
6.1.1 调用 120
6.1.2 接口 121
6.1.3 子类化 121
6.2 命令 123
6.2.1 可运行服务 123
6.2.2 线程-消息代理 126
6.2.3 侍者 128
6.2.5 提前回答 130
6.2.4 组合体 130
6.2.6 自主循环 133
6.2.7 轮转监视器 135
6.3 完成 136
6.3.1 线程联合 137
6.3.2 未来 139
6.3.3 超时 142
6.3.4 结束回调 143
6.4 成组服务 149
6.4.1 AND终止 151
6.4.2 OR终止 152
6.4.3 递增方法 153
6.5 共存 155
6.5.1 保护 156
6.5.2 权利 156
6.6 深入阅读 158
第7章 流 159
7.1 应用 159
7.1.1 构件 160
7.2 流策略 161
7.2.1 基于Pull流 162
7.2.2 基于Push流 163
7.2.3 混合流 164
7.2.4 连接 165
7.2.5 缓冲区 166
7.3 资源管理 170
7.3.1 限制流 171
7.4 装配线 173
7.4.1 表示 173
7.4.2 阶段 176
7.5 深入阅读 185
7.4.3 协调 185
第8章 受协调的交互 186
8.1 事务 186
8.1.1 同步多个对象 186
8.1.2 结构化事务 191
8.1.3 基于乐观策略的事务处理 192
8.1.4 锁 198
8.1.5 悲观的事务处理策略 200
8.2.1 Observer 202
8.2 通知 202
8.2.2 授权通知 205
8.2.3 同步的连接活动 210
8.2.4 授权活动 217
8.2.5 特殊的通知 224
8.3 调度 228
8.3.1 构造调度者 228
8.4 深入阅读 234