Java同步组件概况
CountDownLatch : 是闭锁,通过一个计数来保证线程是否一直阻塞
Semaphore: 控制同一时间,并发线程数量
CyclicBarrier:字面意思是回环栅栏,通过它可以实现让一组线程等待至某个状态之后再全部同时执行...如果进行读取时,可能有另外一个写入的请求,为了保持同步,读取锁定。
ReentrantReadWriteLock写锁是互斥的,也就是说,读和读是不互斥的,但是读和写,写和读是互斥的。...乐观读: 如果读的操作很多写的很少,我们可以乐观的认为读的操作与写的操作同时发生的情况很少,因此不悲观的使用完全的读取锁定。程序可以查看读取资料之后是否遭到写入资料的变更,再采取之后的措施。...它的思想是读写锁中读不仅不阻塞读,同时也不应该阻塞写。 在读的时候如果发生了写,则应当重读而不是在读的时候直接阻塞写。...使用StampedLock就可以实现一种无障碍操作,即读写之间不会阻塞对方,但是写和写之间还是阻塞的
StampedLock源码中的一个案例
package com.rumenz.task.stampedLock