265_尚硅谷_协程快速入门
1.goroutine快速入门案例
2.未开启协程的test()函数调用和main函数中的代码运行
package main
import (
"fmt"
"strconv"
"time"
)
// 3) 要求主线成和goroutine同时执行
// 4) 画出主线程和协程执行流程图
// 1) 在主线程(可以理解成进程)中, 开启一个goroutine, 该协程每隔1秒输出"hello, world"
func test() {
for i := 1; i < 10; i++ {
fmt.Println("In test(), Hello, world" + strconv.Itoa(i))
time.Sleep(time.Second)
}
}
// 2) 在主线程中也每隔一秒输出"hello,golang", 输出10次后, 退出程序
func main() {
// todo 直接调用test()函数,需要单独执行
fmt.Printf("=============== 未开启协程 ===============\n")
test()
for i := 1; i < 10; i++ {
fmt.Println("In main(), hello,golang" + strconv.Itoa(i))
time.Sleep(time.Second)
}
}
3.未开启协程的test()函数调用和main函数中的代码运行结果
4.对test()函数开启一个协程和main()函数的结果穿插运行_代码
package main
import (
"fmt"
"strconv"
"time"
)
// 3) 要求主线成和goroutine同时执行
// 4) 画出主线程和协程执行流程图
// 1) 在主线程(可以理解成进程)中, 开启一个goroutine, 该协程每隔1秒输出"hello, world"
func test() {
for i := 1; i < 10; i++ {
fmt.Println("In test(), Hello, world" + strconv.Itoa(i))
time.Sleep(time.Second)
}
}
// 2) 在主线程中也每隔一秒输出"hello,golang", 输出10次后, 退出程序
func main() {
// todo 改: 执行 go test(), 开启一个协程
fmt.Printf("=============== 开启协程(命令: go func_name()) ===============\n")
go test()
for i := 1; i < 10; i++ {
fmt.Println("In main(), hello,golang" + strconv.Itoa(i))
time.Sleep(time.Second)
}
}
5.对test()函数开启一个协程和main()函数的结果穿插运行_运行结果
6.画出主线程和协程执行流程图

浙公网安备 33010602011771号