Fork/Join模式(JSR166y)手记之Phaser

Fork/Join模式(JSR166y)手记之Phaser

这是一个综合了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方法可以对目标进行动态修改。
yaofeng928在他的博客文章中也提供了 测试示范,有兴趣着看看一看。
在参考资料的第二个链接,则非常用心的给出 对Phaser的用心解释,绝对值得一看,不过其代码存在些许错误,但对总体理解不产生障碍。

参考资料链接1则给出了,各种使用场景。
别人把自己所有想要理解的,基本都上说出来,不再需要单独写一篇,改成推荐好了。
参考资料:
  1. What's New on Java 7 Phaser
  2. Java 7: 理解 Phaser
  3. 探索JDK7的并发编程——PHASER

你可能感兴趣的:(Fork/Join模式(JSR166y)手记之Phaser)