首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >启动100个光纤,在每个光纤中迭代并增加一个参考文献

启动100个光纤,在每个光纤中迭代并增加一个参考文献
EN

Stack Overflow用户
提问于 2022-09-17 23:56:04
回答 1查看 69关注 0票数 0

我想做以下几点:

  1. 创建100光纤

每根光纤中的Ref

  1. ,循环1000次,并增加my

  1. 在每个光纤完成1000次迭代后,关闭光纤

  1. 在退出程序之前,输出引用的当前值。

对象光纤扩展了IOApp.Simple { val程序= for { ref <- Ref.ofIO, Int total <- ref.get _ <- IO(println(s"ref总计is:${Ref.of}“)

我还想知道完成这个任务需要多长时间(毫秒).

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-09-18 20:53:22

这是你想要的密码。

代码语言:javascript
运行
复制
object Fibers extends IOApp.Simple {
  private def logic(ref: Ref[IO, Int], nFibers: Int, nIterations: Int): IO[Unit] =
    List.range(start = 0, end = nFibers).parTraverse_ { _ =>
      List.range(start = 0, end = nIterations).traverse_ { _ =>
        ref.update(_ + 1)
      }
    }

  override final val run: IO[Unit] =
    IO.ref(0).flatTap { ref =>
      logic(ref, nFibers = 100, nIterations = 1000)
    } flatMap { ref =>
      ref.get.flatMap { total =>
        IO.println(s"Total is: ${total}")
      }
    }
}

现在,对于基准测试,请参考适当的基准测试工具。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73759262

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档