测试并发应用(二)监控Phaser类
2023-09-11 14:16:10 时间
声明:本文是《 Java 7 Concurrency Cookbook 》的第八章, 作者: Javier Fernández González 译者:郑玉婷
监控Phaser类Java 并发 API 提供的其中一个最复杂且强大的功能是使用 Phaser 类来执行同步phased任务。当有些任务可以分成步骤执行时,此机制是很有用的。Phaser类提供的同步线程机制是在每个步骤的末端, 所以全部的线程都完成第一步后,才能开始执行第二步。
在这个指南,你将学习如何从Phaser类获取其状态信息。
准备
指南中的例子是使用Eclipse IDE 来实现的。如果你使用Eclipse 或者其他的IDE,例如NetBeans, 打开并创建一个新的java项目。
怎么做呢…
按照这些步骤来实现下面的例子:
//6. 写信息到操控台表明阶段一开始,把线程放入休眠几秒,使用time属性来表明,再写信息到操控台表明阶段一结束,并使用 phaser 属性的 arriveAndAwaitAdvance() 方法来与剩下的任务同步。
//7. 为第二和第三阶段重复第一阶段的行为。在第三阶段的末端使用 arriveAndDeregister()方法代替 arriveAndAwaitAdvance() 方法。
//12. 写关于 registered parties 的信息,phaser的phase,到达的parties, 和未到达的parties 的信息。
System.out.printf("Main: Phaser: Registered Parties:%d\n",phaser.getRegisteredParties());
System.out.printf("Main: Phaser: Unarrived Parties:%d\n",phaser.getUnarrivedParties());
它是如何工作的…
在这个指南,我们在 Task 类实现了 phased 任务。此 phased 任务有3个phases,并使用Phaser接口来与其他Task对象同步。当这些任务正在执行他们的phases时候,主类运行3个任务并打印关于phaser对象的状态信息到操控台。 我们使用以下的方法来获取phaser对象的状态:
getPhase():此方法返回phaser 任务的 actual phase getRegisteredParties(): 此方法返回使用phaser对象作为同步机制的任务数 getArrivedParties(): 此方法返回已经到达actual phase末端的任务数 getUnarrivedParties(): 此方法返回还没到达actual phase末端的任务数以下的裁图展示了项目的部分输出:
参见
文章转自 并发编程网-ifeve.com
初阶C++——STL——string类、vector类和list类(使用方法+模拟实现+测试+思路分析) Alexander Stepanov、Meng Lee 在惠普实验室完成的原始版本,本着开源精神,他们声明允许任何人任意运用、拷贝、修改、传播、商业使用这些代码,无需付费。唯一的条件就是也需要向原始版本一样做开源使用。 HP 版本--所有STL实现版本的始祖。
相关文章
- jmeter 性能测试与 influxdb2 集成显示监控结果
- 测试并发应用 (一)监控Lock接口
- 一文梳理工业控制系统信息安全软件与监控
- 监控WebLogic 8.x的解决方案(监控应用服务器系列文章)
- AIX性能监控
- python监控微信报警
- shell脚本:监控HTTP服务的状态(测试返回码)
- 【Jenkins自动化部署】监控服务自动化构建
- 详解高清监控系统谁是“明星”
- 智能监控视频分析:基础技术尤为重要
- 关于监控拾音器测试对比的一些小建议
- Fundebug 微信小游戏异常监控插件更新至 0.5.0,支持监控 HTTP 慢请求
- LoadRunner压力测试时监控服务器Linux的资源情况
- 未来公共安全视频监控领域都有哪些创新技术?
- MongoDB-运行状态、性能监控,分析
- MongoDB-运行状态、性能监控,分析
- 传统监控结合“视频+” 石化领域玩创新
- Nest应用登陆tvOS 可在大屏幕上进行监控了
- 前端 videojs测试 直播 可用于视频监控直播