【java】java 并发变成 阶段同步器 Phaser

x33g5p2x  于2022-03-18 转载在 Java  
字(0.5k)|赞(0)|评价(0)|浏览(351)

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米的时候,必须集合休息一下,早来的要等晚到的,一直到

相关文章