https://www.ituring.com.cn/book/2018
https://github.com/PacktPublishing/Mastering-Concurrency-Programming-with-Java-9-Second-Edition
https://gitee.com/demo51/Mastering-Concurrency-Programming-with-Java-9-Second-Edition
1 并发设计原理
1.4.2 同步机制
一些重要的同步机制
- synchronized关键字:synchronized关键字允许在某个代码块或者某个完整的方法总定义一个临界段
- lock接口:Lock提供了一比synchronized关键字更为灵活的同步操作。Lock接口有多种不同类型:ReentrantLock用于实现一个可与某种条件相关联的锁;ReentrantReadWriteLock将读写操作分离开来;StampedLock是Java8中增加的一个新特性,它包括三种控制读写访问的模式。
- Semaphore类:该类通过实现经典的信号量来实现同步。Java支持二进制信号量和一般信号量
- CountDownLatch类:该类允许一个任务等待多项操作的结束
- CyclicBarrier类:该类允许多线程在某一共同点上进行同步
- Phaser类:该类允许你控制那部分分割成多个阶段的任务执行。在所有的接管都完成当前阶段之前,任何任务都不能进入下一个阶段。
