Java 7 Concurrency Cookbook包含60多个示例,向您展示了如何在Java中进行多线程编程。 它显示了从初级到高级的各种线程主题,包括创建,中断和监视线程之类的线程管理,使用Java 5 Executor
框架运行或调度线程以及最新的Java 7 fork/Join
框架来分发线程。
我最喜欢的是第3章,其中显示了5个常见的并发机制或模式的示例-“ 信号量 ”,“ CountDownLatch ”,“ CyclicBarrier ”,“ Phaser ”和“ Exchanger ”,以及这些机制如何解决现有的线程问题。 另外,在本章的最后,它展示了如何在Eclipse和NetBeans中测试Java并发代码,这使我感到惊讶。
请参阅以下部分,以了解您将从这本书中学到什么。
第1章:线程管理
Hello world一章中有许多有用的示例,向您展示了线程管理的基本知识。
学到的技能:
- 如何创建,中断,休眠和恢复线程。
- 如何编写守护程序线程。
- 如何处理线程异常。
- 如何将线程分组。
第2章:基本线程同步
线程同步可控制多个线程如何读写相同的数据,文件或数据库(共享资源),
学到的技能:
- 如何使用
synchronized
关键字来同步方法。 - 如何使用
Lock
接口及其实现来同步代码块。 - 如何使用
wait()
,notify()
和notifyAll()
在同步代码中执行单个/多个条件。
第3章:线程同步实用程序
这些示例向您展示了五个同步多个线程的常见并发机制或模式,以及正在解决的问题。
学到的技能:
- 信号量 –一种计数器,用于控制对一个或多个共享资源的访问。
- CountDownLatch –允许线程等待多个操作的完成。
- CyclicBarrier –允许在一个公共点同步多个线程。
- 移相器 –控制按阶段划分的并发任务的执行。
- Exchanger –提供两个线程之间的数据交换点。
第4章:线程执行器
如何使用Java 5,Executor框架Executor
, ThreadPoolExecutor
等。与调度程序一样,它可以在指定的时间或间隔运行单个或多个线程。
学到的技能:
- 如何创建线程执行器
- 延迟后如何运行任务。
- 如何定期运行任务。
- 如何控制任务的完成或取消。
第5章:Fork / Join框架
学到的技能:
- 什么是Java 7 Fork / Join框架,以及一个简单的hello world示例。
- 如何将分割后的任务的结果结合起来。
- 如何取消任务。
第6章:并发收集
介绍在并发编程中使用的Java集合。
学到的技能:
- 什么是阻塞和非阻塞集合。
- 使用阻塞和非阻塞线程安全列表的示例。
-
ConcurrentNavigableMap
示例。 - 如何使用
ThreadLocalRandom
生成并发随机数。 - 如何使用原子变量(例如
AtomicLong
)和原子数组(例如AtomicIntegerArray
。
第7章:自定义并发类
本章介绍如何自定义现有的并发类以满足您的需求。 通常,您不需要这个,但是很高兴知道。
学到的技能:
- 实施基于优先级的
Executor
类 - 如何使用
ThreadFactory
。 - 定制在计划的线程池和Fork / Join框架中运行的任务。
- 如何实现自定义
Lock
类。 - 如何实现自己的原子对象。
第8章:测试并发应用程序
本章介绍如何在并发程序中进行测试。
学到的技能:
- 如何监视
Lock
,Phaser
,Executor
框架和Fork / Join池。 - 如何配置Eclipse和NetBeans以调试并发代码。
- 如何使用FindBugs分析并发代码
结论
本书包含许多易于遵循的示例,并且在每个示例的末尾都有详尽的解释,第6章和第7章除外,这需要一些线程背景知识才能理解。 对于想学习Java线程的初学者来说,这本“ Java 7并发性烹饪书 ”是学习的最佳书。 对于经验丰富的开发人员,您也可以将其视为“ Java并发性”的完整参考。
如果与实践中的经典Java并发相比,该怎么办? 我认为这两本书都是针对不同开发人员级别的。 恕我直言,经典的“实践中的Java并发性”是针对高级级别的,其摘要代码后跟着几页说明,虽然很棒,但并不适合任何人。 而且此Java 7 Concurrency Cookbook适用于初学者和入门级读者,该示例易于理解,可以随时修改以供您的项目使用。
注意
该Java 7并发食谱可以通过amazon.com或packtpub.com在线购买。
参考文献
翻译自: https://mkyong.com/book-review/review-java-7-concurrency-cookbook/