這是一個綜合了CountDownLatch和CyclicBarrier特性的混合體,官方說靈活性非常高。基本上,只要對上面兩個熟悉,那么閱讀API,也不難快速上手的。
yaofeng928 簡單總結(jié)其特點:
Phaser同時包含CyclicBarrier和CountDownLatch兩個類的功能。Phaser的arrive方法將將計數(shù)器加1,awaitAdvance將線程阻塞,直到計數(shù)器達到目標,這兩個方法與CountDownLatch的countDown和await方法相對應;Phaser的arriveAndAwaitAdvance方法將計數(shù)器加1的同時將線程阻塞,直到計數(shù)器達到目標后繼續(xù)執(zhí)行,這個方法對應CyclicBarrier的await方法。
除了包含以上兩個類的功能外,Phaser還提供了更大的靈活性。CyclicBarrier和CountdownLatch在構(gòu)造函數(shù)指定目標后就無法修改,而Phaser提供了register和deregister方法可以對目標進行動態(tài)修改。
在參考資料的第二個鏈接,則非常用心的給出
對Phaser的用心解釋,絕對值得一看,不過其代碼存在些許錯誤,但對總體理解不產(chǎn)生障礙。
參考資料鏈接1則給出了,各種使用場景。
別人把自己所有想要理解的,基本都上說出來,不再需要單獨寫一篇,改成推薦好了。