gpt4 book ai didi

go - 正在运行的特定 go routines 的数量

转载 作者:IT王子 更新时间:2023-10-29 00:56:56 25 4
gpt4 key购买 nike

在 go 的运行时库中,我们有 NumGoroutine() 来返回当时运行的 go 例程的总数。我想知道是否有一种简单的方法可以获取特定函数运行的 go 例程的数量?

目前我有它告诉我我有 1000 个或其他任何 go 例程,但我想知道我有 500 个运行 func Foo 的 go 例程。可能的?简单的?不应该为此烦恼吗?

最佳答案

如果您对这些数字感兴趣,恐怕您必须自己计算 goroutines。实现目标最便宜的方法是使用 sync/atomic直接打包。

import "sync/atomic"

var counter int64

func example() {
atomic.AddInt64(&counter, 1)
defer atomic.AddInt64(&counter, -1)

// ...
}

只要您想读取计数器的当前值,请使用atomic.LoadInt64(&counter)

在您的程序中有几个这样的计数器并不少见,这样您就可以轻松地对其进行监控。例如,看看 CacheStats struct最近发布的组缓存源。

关于go - 正在运行的特定 go routines 的数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18133502/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com