golang goroutine

package main

import (
	"fmt"
	"sync"
	"time"
)

var wg sync.WaitGroup

func test(i int) {
	wg.Done() //goroutine 结束就登记-1
	fmt.Println("go routine", i)
}

func main() {
	fmt.Println("Start")
	// go test() // 开启一个单独的goroutine去执行test()函数
	for i := 0; i < 10; i++ {
		wg.Add(1) //启动一个goroutine就登记+1
		go test(i)
	}
	wg.Wait() //等待所有登记的goroutine都结束
	fmt.Println("end")
	//main函数结束后,由main函数启动的goroutine也会退出
}

  

posted @ 2022-12-12 15:28  羊脂玉净瓶  阅读(17)  评论(0)    收藏  举报