CountDownLatch: 一個或者多個線程,等待其他多個線程完成某件事情之後才能執行 | CyclicBarrier : 多個線程互相等待,直到到達同一個同步點,再繼續一起執行。 |
---|---|
減計數方式 | 加計數方式 |
減到0釋放所有等待線程 | 加到特定值釋放所有等待線程 |
減到爲0時無法重置 | 增加到特定值,計數0重新開始 |
countDown()方法減一 await()方法阻塞 | await()方法加一 加一後的值不等於構造方法的值 阻塞 |
不可重複利用 | 可重複利用 |
悲觀鎖與樂觀鎖
悲觀鎖 synchronized和ReentrantLock等獨佔鎖就是悲觀鎖思想的實現
樂觀鎖一般會使用版本號機制或CAS算法實現。