### CountDownLatch
> 通過定義線程組的數量,通過countDown通知完成,通過await阻塞等待所有的任務完成,達到并發的目的。
> CountDownLatch非常適合于對任務進行拆分,使其并行執行,比如某個任務執行2s,其對數據的請求可以分為五個部分,那么就可以將這個任務拆分為5個子任務,分別交由五個線程執行,執行完成之后再由主線程進行匯總,此時,總的執行時間將決定于執行最慢的任務,平均來看,還是大大減少了總的執行時間。
> ?另外一種比較合適使用CountDownLatch的地方是使用某些外部鏈接請求數據的時候,比如圖片,因為我們使用的圖片服務只提供了獲取單個圖片的功能,而每次獲取圖片的時間不等,一般都需要1.5s~2s。當我們需要批量獲取圖片的時候,比如列表頁需要展示一系列的圖片,如果使用單個線程順序獲取,那么等待時間將會極長,此時就可以使用CountDownLatch對獲取圖片的操作進行拆分,并行的獲取圖片,這樣也就縮短了總的獲取時間。
>
- 虛擬機
- JVM內存結構
- JVM調優手段
- java對象生命周期
- 垃圾回收判斷對象死亡
- 垃圾回收算法
- 垃圾收集器
- JAVA基礎知識
- java事件機制
- java反射機制
- jvm創建對象
- java異常
- finally語句一定會執行嗎?
- 集合類介紹
- ArrayList
- LinkedList
- HashMap
- ConcurrentHashMap
- 多線程
- 為什么要使用線程池
- 線程死鎖
- 死鎖檢測和解除
- jstack
- jconsole
- 死鎖預防
- 常見線程池
- 線程池參數
- 工作隊列介紹
- 拒絕策略
- ThreadLocal
- CAS
- ReentrantLock
- AQS
- CountDownLatch
- Spring
- spring中bean的作用域
- REDIS
- redis數據結構
- redis hash實現
- redis rehash與hashmap擴容的區別
- Redis使用場景
- Redis為何這么快
- redis連接數不足導致錯誤
- 分布式
- 分布式事務
- ACID
- CAP
- BASE
- 事務隔離性
- 一致性哈希算法
- 負載均衡算法
- Hystrix 信號量和線程池隔離的差異
- Spring Cloud
- eureka
- MYSQL
- mysql優化經驗
- undo redo binlog
- web
- http協議
- http和https區別
- Cookie和session
- TCP三次握手、4次揮手
- TCP的time_wait和close_wait
- 算法問題
- 編輯距離算法
- MQ
- RabbitMq
- Kafka
- 安裝教程
- Win ELK安裝