我使用goroutine多线程的时候,执行以下语句,最后一次执行偶尔发生不执行的情况
![image.png](https://static.studygolang.com/190521/c07d609760926d40d1525eaafe98ae68)
如下图,最后一次执行应该输出 world,4 但是没有输出
请大家帮忙看看这是什么原因啊
因为主协程结束了。所以子协程没跑完就被关闭了
正确的做法应该是:
wg :=make(sync.Waitgroup)
func main{
wg.Add(2)
go say("world")
go say("hello")
wg.Wait()
}
func say(s string){
//你的代码...后面加上这句
wg.Done()
}
#1
更多评论