编辑推荐
适读人群 :本书适合有一定基础的Java程序员阅读学习,尤其适合想要掌握Java线程和并发工具的读者阅读参考。 Java的线程API和并发工具类,是Java自身强大而富有挑战性的API及语言特性的一部分。Java新手往
往很难用这些特性编写出正确的多线程应用程序。本书旨在帮助Java开发者掌握并高效地使用这些功能。
本书分为两个部分,每部分包含4个章节。 第1部分关注于底层的线程API,而第2部分则关注于高级的并发工具类。第1部分介绍线程API的基础知识、同步、等待 通知以及线程组的额外能力,还有线程局部变量和定时器框架。第2部分介绍并发工具类的基础知识、Executor、同步器、锁框架,以及并发集合的额外能力、原子变量、Fork Join框架和Completion Service。
每一章节后都给出了一些练习题。这些练习题旨在测试你对章节内容的理解程度。附录A提供这些习题的答案。附录B介绍了如何在Swing图形用户接口工具集(Swing Graphical User Interface Tookit)中使用线程。
通过本书,你将学习:
● 创建、配置并启动运行runnable的线程;
● 同步共享代码以避免竞态条件、数据竞争以及
其他并发问题;
● 避免缓存变量引发的问题;
● 使用等待 通知机制协调多条线程;
● 探索线程组并学习避免使用它们的原因;
● 学习线程局部变量;
● 探索定时器框架;
● 学习引入并发工具类的原因;
● 探索Executor、同步器以及锁框架;
● 探索并发集合、原子变量、Fork Join框架以及
Completion Service;
● 实验Sw i ng中的线程使用方式及其线程相关的
API。
内容简介
Java线程和并发工具是应用开发中的重要部分,备受开发者的重视,也有一定的学习难度。
《Java线程与并发编程实践》是针对Java 8中的线程特性和并发工具的快速学习和实践指南。全书共8章,分别介绍了Thread类和Runnable接口、同步、等待和通知、线程组、定时器框架、并发工具、同步器、锁框架,以及高级并发工具等方面的主题。每章的末尾都以练习题的方式,帮助读者巩固所学的知识。附录A给出了所有练习题的解答,附录B给出了一个基于Swing线程的教程。
《Java线程与并发编程实践》适合有一定基础的Java程序员阅读学习,尤其适合想要掌握Java线程和并发工具的读者阅读参考。
作者简介
Jeff Friesen既是一名自由职业的家教也是重点关注于Java的软件开发者。除了是《Learn Java for Android Development》一书的作者以及《Android Recipes》一书的合著人,Jeff还给JavaWorld(JavaWorld.com)、informIT(InformIT.com)、Java.net以及DevSource(Devsource.com)写了大量关于Java及其它技术的文章。你可以通过他的个人网站TutorTutor.ca联系他。
目录
第一部分 线程API
第1章 Thread和Runnable 2
1.1 Thread和Runnable简介 2
1.1.1 创建Thread和Runnable对象 3
1.1.2 获取和设置线程状态 4
1.1.3 获取和设置线程的名称 5
1.1.4 获取一条线程的存活状态 5
1.1.5 获取一条线程的执行状态 6
1.1.6 获取和设置线程的优先级 6
1.1.7 获取和设置线程的守护线程状态 8
1.1.8 启动线程 9
1.2 操作更高级的线程任务 12
1.2.1 中断线程 12
1.2.2 等待线程 16
1.2.3 线程睡眠 20
1.3 练习 23
1.4 小结 24
第2章 同步 26
2.1 线程中的问题 26
2.1.1 竞态条件 26
2.1.2 缓存变量 29
2.2 同步临界区的访问 30
2.2.1 使用同步方法 32
2.2.2 使用同步块 33
2.3 谨防活跃性问题 34
2.4 Volatile和Final变量 39
2.5 练习 48
2.6 小结 50
第3章 等待和通知 52
3.1 等待 通知API一览 52
3.2 生产者和消费者 55
3.3 练习 65
3.4 小结 66
第4章 额外的线程能力 67
4.1 线程组 67
4.2 线程局部变量 73
4.3 定时器框架 77
4.3.1 深入Timer 81
4.3.2 深入TimerTask 85
4.4 练习 87
4.5 小结 88
第二部分 并发工具类
第5章 并发工具类和Executor框架 90
5.1 探索Executor 91
5.2 练习 103
5.3 小结 105
第6章 同步器 106
6.1 倒计时门闩 106
6.2 同步屏障 111
6.3 交换器 119
6.4 信号量 126
6.5 信号量和公平策略 127
6.6 Phaser 136
6.7 练习 139
6.8 小结 140
第7章 锁框架 142
同步及低级别的锁 142
7.1 锁 143
7.2 重入锁 145
7.3 条件 149
7.4 读写锁 157
7.5 重入读写锁 158
7.6 练习 165
7.7 小结 166
第8章 额外的并发工具类 167
8.1 并发集合 167
8.1.1 使用BlockingQueue和ArrayBlockingQueue 169
8.1.2 深入学习ConcurrentHashMap 172
8.2 原子变量 173
8.3 Fork Join框架 179
8.4 Completion Service 190
8.5 练习 194
8.6 小结 196
第三部分 附录
附录A 练习题答案 198
第1章:Thread和Runnable 198
第2章:同步 201
第3章:等待和通知 205
第4章:额外的线程能力 208
第5章:并发工具类和Executor框架 211
第6章:同步器 215
第7章:锁框架 220
第8章:额外的并发工具 222
附录B Swing中的线程 225
单线程编程模型 225
线程化API 231
SwingUtilities和EventQueue 231
SwingWorker 240
定时器 245
基于定时器的幻灯片展示 249
Java线程与并发编程实践 电子书 下载 mobi epub pdf txt