在這堂課中,我們解析來自
java.util.concurrent 的高階同步器:
CountDownLatch、
CyclicBarrier、
Phaser 與
Exchanger。學習如何透過
await()/
countDown() 協調任務的啟動與完成,用
await() 構建可重複使用的階段與屏障動作,使用
register()/
arriveAndAwaitAdvance()/
arriveAndDeregister() 管理「樂團」中的動態參與者,並透過
exchange() 兩兩交換資料。實作上,我們會做群體起跑的工作者以及「遊戲 tick」,並拆解常見錯誤:
CountDownLatch 的一次性、如何處理
BrokenBarrierException,以及正確的
deregister()。全程免去
wait()/
notify() 的痛苦。