登录
首页 >  Golang >  Go问答

count / 显示活跃的 goroutines 的数量

来源:Golang技术栈

时间:2023-03-23 09:14:45 127浏览 收藏

今日不肯埋头,明日何以抬头!每日一句努力自己的话哈哈~哈喽,今天我将给大家带来一篇《count / 显示活跃的 goroutines 的数量》,主要内容是讲解golang等等,感兴趣的朋友可以收藏或者有更好的建议在评论提出,我都会认真看的!大家一起进步,一起学习!

问题内容

我有一个队列和一个同时执行出队和入队的函数。我想确保在队列中运行正确数量的 goroutine,只要列表中有东西。

这是我正在使用的代码,但我想知道是否有办法打印当前活动的 goroutines 的数量

链接到游乐场

var element int

func deen(queue chan int) {

    element := 

正确答案

runtime.NumGoroutine,但你正在接近这个错误。

  1. 你的循环将不断产生 goroutines。
  2. 由于 for 循环,这将不必要地消耗 CPU 周期。

一种方法是使用sync.WaitGroup。

func deen(wg *sync.WaitGroup, queue chan int) {
    for element := range queue {
        fmt.Println("element is ", element)
        if element%2 == 0 {
            fmt.Println("new element is ", element)
            wg.Add(2)
            queue 

playground

---旧的越野车版本,里面有比赛---

func deen(wg *sync.WaitGroup, queue chan int) {
    for element := range queue {
        wg.Done()
        fmt.Println("element is ", element)
        if element%2 == 0 {
            fmt.Println("new element is ", element)
            wg.Add(2)
            queue 

playground

本篇关于《count / 显示活跃的 goroutines 的数量》的介绍就到此结束啦,但是学无止境,想要了解学习更多关于Golang的相关知识,请关注golang学习网公众号!

声明:本文转载于:Golang技术栈 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>