javajava 并发变成 阶段同步器 Phaser
Posted 九师兄
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javajava 并发变成 阶段同步器 Phaser相关的知识,希望对你有一定的参考价值。
1.概述
1.1 问题
- Phaser主要用来解决什么问题?
- Phaser与CyclicBarrier和CountDownLatch的区别是什么?
- 如果用CountDownLatch来实现Phaser的功能应该怎么实现?
- Phaser运行机制是什么样的?
- 给一个Phaser使用的示例?
1.2 简介
java7中引入了一种新的可重复使用的同步屏障,称为移相器Phaser.Phaser拥有与CyclicBarrier和CountDownLatch类似的功劳.但是这个类提供了更加灵活的应用.
Phaser又称“阶段器”,用来解决控制多个线程分阶段共同完成任务的情景问题
。它与CountDownLatch和CyclicBarrier类似,都是等待一组线程完成工作后再执行下一步,协调线程的工作。但在CountDownLatch和CyclicBarrier中我们都不可以动态的配置parties,而Phaser可以动态注册需要协调的线程,相比CountDownLatch和CyclicBarrier就会变得更加灵活。
这里举个典型的例子。
比如跑步假设规则是这样的,跑5000米的距离,然后每次跑到1000米的时候,必须集合休息一下,早来的要等晚到的,一直到
以上是关于javajava 并发变成 阶段同步器 Phaser的主要内容,如果未能解决你的问题,请参考以下文章
javajava 并发编程 CyclicBarrier 源码分析