javajava 并发变成 阶段同步器 Phaser

Posted 九师兄

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javajava 并发变成 阶段同步器 Phaser相关的知识,希望对你有一定的参考价值。

1.概述

1.1 问题

  1. Phaser主要用来解决什么问题?
  2. Phaser与CyclicBarrier和CountDownLatch的区别是什么?
  3. 如果用CountDownLatch来实现Phaser的功能应该怎么实现?
  4. Phaser运行机制是什么样的?
  5. 给一个Phaser使用的示例?

1.2 简介

java7中引入了一种新的可重复使用的同步屏障,称为移相器Phaser.Phaser拥有与CyclicBarrier和CountDownLatch类似的功劳.但是这个类提供了更加灵活的应用.

Phaser又称“阶段器”,用来解决控制多个线程分阶段共同完成任务的情景问题。它与CountDownLatch和CyclicBarrier类似,都是等待一组线程完成工作后再执行下一步,协调线程的工作。但在CountDownLatch和CyclicBarrier中我们都不可以动态的配置parties,而Phaser可以动态注册需要协调的线程,相比CountDownLatch和CyclicBarrier就会变得更加灵活。

这里举个典型的例子。

比如跑步假设规则是这样的,跑5000米的距离,然后每次跑到1000米的时候,必须集合休息一下,早来的要等晚到的,一直到

以上是关于javajava 并发变成 阶段同步器 Phaser的主要内容,如果未能解决你的问题,请参考以下文章

javajava 并发编程 CyclicBarrier 源码分析

JavaJava的内存模型,我才知道是这样!!!

并发编程系列之Phaser用法简介

并发编程系列之Phaser用法简介

CMU Database Systems - Two-phase Locking

XA&Two/Three-Phase-Commit