You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

已用AtomicInteger实现Gatling自增Feeder,求Iterator.from实现方案

替代AtomicInteger的实现方案

当然可以用Iterator.from()配合map()来实现,这种写法更简洁且符合函数式风格,尤其适合单线程场景:

import java.util.UUID

def getUUID: String = UUID.randomUUID().toString

val itemAttemptForPost = Iterator.from(1).map { ordinal =>
  Map(
    "usedId" -> getUUID,
    "ordinal" -> ordinal
  )
}

细节说明:

  • Iterator.from(1)会生成一个从1开始的无限递增整数序列,正好满足你从1开始计数的需求。
  • 每次迭代时,map会将当前序号和新生成的UUID组合成目标Map,逻辑和你原代码完全一致。
  • 单线程环境下,这种写法不需要原子类就能保证序号的顺序递增,没有额外的并发控制开销;如果是多线程场景,原AtomicInteger的方案更适合保证原子性。

和原方案的对比:

  • 原方案依赖AtomicInteger的原子操作来保证多线程下的序号正确性,而Iterator方案天生是单线程安全的,写法更简洁。
  • 两种方案都能生成无限数据流,满足惰性生成的特性。

内容的提问来源于stack exchange,提问作者Nimesh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 15:02:10