当前位置: 首页 > 面试题库 >

Java:jsr166y Phaser的教程/说明

呼延俊良
2023-03-14
问题内容

这个问题是两年前提出的,但是它提到的资源不是很有帮助(IMHO),或者链接不再有效。

必须有一些好的教程才能理解Phaser。我已经阅读了Javadoc,但我的眼睛不知所措,因为要真正理解Javadoc,您必须知道应该如何使用这些类。

有人有什么建议吗?


问题答案:

对于Phaser,我已经回答了几个问题。看到他们可能有助于理解他们的应用程序。它们链接在底部。但是要了解Phaser的功能以及其有用性,了解其解决方案的重要性。

这是CountdownLatch和CyclicBarrier的属性

注意:

  • 参与方数量是表示不同线程数的另一种方式
  • 不可重用意味着您必须在重用之前创建屏障的新实例
  • 如果线程可以到达并继续工作而无需等待其他线程或可以等待所有线程完成,则屏障是可扩展的

倒数计时

  • 固定人数
  • 无法恢复
  • 可晋级(看latch.countDown(); 晋级 latch.await(); 必须等待

循环屏障

  • 固定人数
  • 可重用
  • 不可提前

因此,CountdownLatch不可重用,您每次都必须创建一个新实例,但是该实例是可用的。可以重用CylicBarrier,但所有线程必须等待各方到达屏障。

移相器

  • 动态聚会人数
  • 可重用
  • 先进的

当线程想要被Phaser知道phaser.register()时,它们将在线程到达屏障时调用,phaser.arrive()
并且在此处可以进行扩展 。如果线程要等待所有注册的任务完成phaser.arriveAndAwaitAdvance()

还有一个阶段的概念,其中线程可以等待可能尚未完成的其他操作完成。一旦所有线程到达移相器的屏障,就会创建一个新阶段(增量为1)。



 类似资料:
  • 本文向大家介绍mysql 8.0.11安装教程图文解说,包括了mysql 8.0.11安装教程图文解说的使用技巧和注意事项,需要的朋友参考一下 网上的教程有很多,基本上大同小异。但是安装软件有时就可能因为一个细节安装失败。我也是综合了很多个教程才安装好的,所以本教程可能也不是普遍适合的。 安装环境:win7 1、下载zip安装包: MySQL8.0 For Windows zip包下载地址:htt

  • 运行环境 Linux 系统 (Swoole 不支持在 Windows 上运行) PHP >= 7.1 Composer Swoole >= 4.3.0 Redis、PDO 扩展 Windows 开发者 可以使用虚拟机、Windows 10 Linux 子系统等环境,实现在 Windows 系统上开发和调试。 Docker 推荐使用 Swoole 官方 Docker:https://github.c

  • 联动类别使用说明教程: 织梦在新版本V5.3中加入了一个联动类别的功能,不少人不理解这个联动类别的使用方法,本教程天涯就来介绍如何使用这个功能。 联动类别使用的地方还是比较多的,首先我们可以通过后台的[核心]-[频道模型]-[联动类别管理]查看,联动类别其定义如下:系统一种特殊的枚举数据类别,可以有系统内置或由用户管理。系统内置的枚举用户是不可以删除的,但可以对这些数据进行添加子分类及修改。到这里

  • 原文:Pyplot tutorial matplotlib.pyplot是一个命令风格函数的集合,使matplotlib的机制更像 MATLAB。 每个绘图函数对图形进行一些更改:例如,创建图形,在图形中创建绘图区域,在绘图区域绘制一些线条,使用标签装饰绘图等。在matplotlib.pyplot中,各种状态跨函数调用保存,以便跟踪诸如当前图形和绘图区域之类的东西,并且绘图函数始终指向当前轴域(请

  • 本文向大家介绍说说Redux的实现流程相关面试题,主要包含被问及说说Redux的实现流程时的应答技巧和注意事项,需要的朋友参考一下 组件视图 通过 事件 发送 dispatch action store 接收到 action , 把action和 oldState 当做参数发送给 reducers reducers 接收 action和 oldState 通过计算返回新的 newState 给 s

  • 原文:Path Tutorial 位于所有matplotlib.patch对象底层的对象是Path,它支持moveto,lineto,curveto命令的标准几个,来绘制由线段和样条组成的简单和复合轮廓。 路径由(x,y)顶点的(N,2)数组,以及路径代码的长度为 N 的数组实例化。 例如,为了绘制(0,0)到(1,1)的单位矩形,我们可以使用这个代码: import matplotlib.pyp