go-函数结束协程结束吗

结论为先

在main或其他函数中开协程,主程序结束了,协程还继续执行吗?

结论:main函数中的协程,如果main结束了,协程也会结束

​ 其他函数里的协程,函数结束了,只要main没结束,协程就会执行。

代码

package main

import (
	"fmt"
	"time"
)

func main() {
	test()
	time.Sleep(time.Second*20)
}

func test() {
	//定时完成的操作写在协程里
	ticker := time.NewTicker(time.Second * 1)
	//ch := make(chan int)
	go func() {
		var x int
		for x < 10 {
			select {
			case <-ticker.C:
				x++
				fmt.Printf("%d\n", x)
			}
		}
		ticker.Stop()
		//ch <- 0
	}()
	//<- ch
	fmt.Println("bye")
}
posted @ 2021-08-12 16:41  HexagonMan  阅读(708)  评论(0)    收藏  举报