Go_goroutine初识

 

package main

import (
	"fmt"

)

func main() {
	/*
	一个goroutine打印数字,另外一个goroutine打印字母,观察运行结果。。

	并发的程序的运行结果,每次都不一定相同。
	不同计算机设备执行,效果也不相同。


	go语言的并发:go关键字
		系统自动创建并启动主goroutine,执行对应的main()
		用于自己创建并启动子goroutine,执行对应的函数

		go 函数()//go关键创建并启动goroutine,然后执行对应的函数(),该函数执行结束,子goroutine也随之结束。

			子goroutine中执行的函数,往往没有返回值。
			如果有也会被舍弃。
	 */

	//1.先创建并启动子goroutine,执行printNum()
	go printNum()

	//2.main中打印字母
	for i:=1;i<=100;i++{
		fmt.Printf("	主goroutine中打印字母:A %d
",i)
	}

	//time.Sleep(1*time.Second)
	fmt.Println("main...over...") //主goroutine结束了,子goroutine不管执行是否完毕,都得结束
	//==========数字值打印到86========
	//子goroutine中打印数字:85
	//子goroutine中打印数字:86
	//主goroutine中打印字母:A 97
	//主goroutine中打印字母:A 98
	//主goroutine中打印字母:A 99
	//主goroutine中打印字母:A 100
	//main...over...
	//
	//Process finished with exit code 0

}

func printNum() {
	for i := 1; i <= 100; i++ {
		fmt.Printf("子goroutine中打印数字:%d
", i)
	}
}
原文地址:https://www.cnblogs.com/yzg-14/p/12251553.html