这是一个综合了CountDownLatch和CyclicBarrier特性的混合体,官方说灵活性非常高。基本上,只要对上面两个熟悉,那么阅读API,也不难快速上手的。
yaofeng928 简单总结其特点:
Phaser同时包含CyclicBarrier和CountDownLatch两个类的功能。Phaser的arrive方法将将计数器加1,awaitAdvance将线程阻塞,直到计数器达到目标,这两个方法与CountDownLatch的countDown和await方法相对应;Phaser的arriveAndAwaitAdvance方法将计数器加1的同时将线程阻塞,直到计数器达到目标后继续执行,这个方法对应CyclicBarrier的await方法。
除了包含以上两个类的功能外,Phaser还提供了更大的灵活性。CyclicBarrier和CountdownLatch在构造函数指定目标后就无法修改,而Phaser提供了register和deregister方法可以对目标进行动态修改。
在参考资料的第二个链接,则非常用心的给出
对Phaser的用心解释,绝对值得一看,不过其代码存在些许错误,但对总体理解不产生障碍。
参考资料链接1则给出了,各种使用场景。
别人把自己所有想要理解的,基本都上说出来,不再需要单独写一篇,改成推荐好了。