首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在平行的峡谷中使用限速器会导致种族状况吗?

在平行的峡谷中使用限速器会导致种族状况吗?
EN

Stack Overflow用户
提问于 2022-09-03 18:37:34
回答 1查看 81关注 0票数 0

作为代码的一项重大简化,我有一个goroutine并行运行数千次,每个人都在等待通过来自golang.org/x/time/rate的速率限制器运行。

代码语言:javascript
复制
func main() {
  limiter := rate.NewLimiter(rate.Every(time.Second/100), 1) // 100 RPS

  for _ := range jobs {
    go run(&limiter)
  }
}

func run(limiter *rate.Limiter) {
  limiter.Wait()

  // do stuff...
}

其想法是让run()尽可能频繁地执行,但只限于100次/秒的调用,以遵守第三方API的100个RPS的速率限制。

limiter.Wait()允许执行时,这会导致竞争条件吗?因为我仍然受到第三方的限制。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-09-06 11:46:08

不,不是的。

limiter.Wait()是并发安全的,您可以在限制器实现的源文件中看到这一点。

您可以在任何并发场景中自由使用限制器。

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

https://stackoverflow.com/questions/73594626

复制
相关文章

相似问题

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