您的位置  > 互联网

java性能测试中的基本使用——同步屏障

之前有分享过这三者在性能测试中的应用,也有文章,不过文字读起来有点枯燥。

我刚开始学习这个内容的时候,也是看了别人的讲解文章,自己尝试了一下,才掌握了三个类别的基本使用。 后来我在查找资料的时候,发现有人把这些内容用流程图的形式画出来了,非常容易理解。

可能是因为比较老了,而且图像的线条比较简单,所以我就尽力用draw.io重新画了一下。

该类位于 java.util 下。 封装并可用于实现计数器功能。 比如有一堆任务需要多线程执行,所有任务都执行完之后才需要进行下一步。 这时候就可以用它来实现这个功能了。

参考文章:

也称为同步屏障,在JDK 1.5中引入,一组线程在到达屏障时会被阻塞,直到最后一个线程到达屏障,因此被阻塞的线程可以继续执行。 许多任务正在执行,但是这些任务中间的一个节点需要等到其他任务执行到固定节点后才能继续执行。 先到达的线程将等待所有线程都到达该节点。 在性能测试中,我们经常会遇到N多个用户同时在线的场景。 一般流程是先让这N个用户登录,然后保持登录状态,然后并发请求。 这个场景可以完美解决我们的需求。

参考文章:

和 的功能与 和 部分重叠,同时提供更丰富的语义和更灵活的使用。 比较适合这样的场景。 一个任务可以分为多个阶段。 现在您需要多个线程来处理批量任务。 对于每个阶段,多个线程可以并发运行,但您要确保仅完成前一阶段的任务。 只有这样才能开始后续的任务。 该场景可以使用多个任务来实现,每个任务负责等待一个阶段的所有任务完成。 但使用它的缺点是需要清楚地知道总共有多少个stage,并且并行任务的数量需要提前预定义并且不能动态修改。 这两个问题可以同时解决,并且在任务过程中可以随时添加或删除需要等待的号码。

参考文章:,Boss直接聘请签约作者,非知名测试开发人员,欢迎关注。