gpt4 book ai didi

带有 channel 的循环中的 goroutine

转载 作者:数据小太阳 更新时间:2023-10-29 03:40:50 25 4
gpt4 key购买 nike

enter image description here

注意:GetTaskQueue() 返回一个全局变量,其结构为

type TaskQueue struct {
ch chan int
wg *sync.WaitGroup
}

channel用于限制goroutine的数量,goroutine的最大数量设置为3。

我的期望是所有 ts 都应该匹配 tasks。但是,DominiumdApp Builder 没有显示在 t 中,而 EthicHub TwitterApollo重复。

输出如下所示。

enter image description here

最佳答案

正如上一个答案中提到的,任务循环变量的地址始终相同。所以这应该适合你:

for _, task := range tasks {
t := task
fmt.Println("task ", t.Name)
time.Sleep(2 * time.Second)
go func(t *DB.TaskLog) {
defer GetTaskQueue().Done()
fmt.Println("task ", t.Name)
CrawlAirdrop(t.Link)
}(&t)

select {
case <-ctx.Done():
return
default:
}
}

关于带有 channel 的循环中的 goroutine,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51940582/

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