所以我正在编写一段代码:
// Main
for {
c := make(chan string)
data := make(map[string]string)
go doStuff(data,c)
fmt.Println(<-c)
time.Sleep(2*time.Second)
}
// doStuff
func doStuff(d map[string]string,ch chan string){
defer close(ch)
//Code to make changes to passed data
ch <-"changes made"
}
它的作用是将映射和通道传递给goroutine,在其中对映射进行了一些更改,它将发送消息,并且在主程序中它将打印并等待另一个修改消息,并且间隔为处理传递给 goroutine 的数据后,直到键盘中断或某些逻辑 2 秒。
我在某个地方觉得这不是有效的方法。所以我的问题是在无限循环中放置一个 goroutine 是否可以,或者有没有更有效的方法来做到这一点?
白衣非少年
相关分类