24 goroutine channel实现并发和并行(一)
var wg sync.WaitGroup
func test(num int) {
defer wg.Done()
for i := 0; i <= 5; i++ {
fmt.Printf("协程(%v)第%v条数据\n", num, i)
}
}
func main() {
for i := 1; i <= 5; i++ {
wg.Add(1)
go test(i)
}
wg.Wait()
fmt.Println("关闭主线程")
}
//协程(5)第0条数据
//协程(5)第1条数据
//协程(5)第2条数据
//协程(5)第3条数据
//协程(5)第4条数据
//协程(5)第5条数据
//协程(4)第0条数据
//协程(4)第1条数据
//协程(4)第2条数据
//协程(4)第3条数据
//协程(4)第4条数据
//协程(4)第5条数据
//协程(2)第0条数据
//协程(2)第1条数据
//协程(2)第2条数据
//协程(2)第3条数据
//协程(2)第4条数据
//协程(2)第5条数据
//协程(3)第0条数据
//协程(3)第1条数据
//协程(3)第2条数据
//协程(3)第3条数据
//协程(3)第4条数据
//协程(3)第5条数据
//协程(1)第0条数据
//协程(1)第1条数据
//协程(1)第2条数据
//协程(1)第3条数据
//协程(1)第4条数据
//协程(1)第5条数据
//关闭主线程