java并发实战手册第三章---线程同步辅助类简介
在第二章中我们学习了同步和临界区的概念。并且讨论了多个并发任务共享一个资源时的同步情况。这个共享资源可以是一个对象也可以是一个对象的一个属性。访问共享资源的代码叫做临界区
- 第二章回顾(基本的同步机制)
- synchronized关键字
- Lock接口以及其实现类:如ReentrantLock,ReentrantReadWriteLock.ReadLock,和ReentrantReadWriteLock.WriteLock
- 在锁中使用条件Condition
在线程中使用Object类中的wati(),notify(),notifyAll()方法。
第三章内容简介
- 在本章中学习如何使用更高级的同步机制来实现多线程间的同步
- 1.信号量(Semaphore):一种计数器,用来保护一个或者多个共享资源的访问,是并发编程的一种基础工具,大多数编程语言都提高了这种机制。
- 2.CountDownLacth: java语言提供的一种同步辅助类,在完成一组正在其他线程中执行的操作之前,允许线程一直等待。
- 3.CyclicBarrier: java语言提供的一种同步辅助类,允许多个线程在某个集合点(common point)处相互等待。
- 4.Phaser:java语言提供的同步辅助类,把并发任务分成多个阶段运行,在开始下一个阶段之前,当前阶段中的所有线程都必须执行完成。java 7 API中的新特性。
5.Exchanger: 同步辅助类,提供了两个线程之间的数据交换点。
说明:在应用程序中,任何时候都可以使用Semaphore信号量来保护临界区,因为它是一个基础的同步机制,而其他的同步机制,则需要根据各自的上述特性来对其选择使用。所以我们需要根据应用程序的特性来选择合适的同步机制。