CountdownLatch: đồng bộ một lần, đếm ngược khi thread hoàn thành, main thread chờ bằng await().
Ví dụ: khởi động N worker thread, main thread chờ tất cả hoàn thành. CyclicBarrier: có thể tái sử dụng (cyclic), tất cả thread chờ nhau tại barrier rồi cùng tiến.
Ví dụ: N thread đồng bộ tại checkpoints. Điểm khác: CountdownLatch một chiều, không reset được; CyclicBarrier reusable cho nhiều vòng. Dùng CountdownLatch cho sequence start; CyclicBarrier cho phased coordination.