课程名称:Go 语言语法进阶指南
课程章节: 并发&指针
课程讲师:Gavin
课程内容:
协程同步
package gorotine import "fmt" var WG sync.WaitGroup // 读取数据 func Read() { for i:=1; i<11; i++ { WG.Add(1) } } // 写入数据 func Write() { for i:=1; i<11; i++ { time.Sleep(time.Second * 2)//睡眠时间两秒 fmt.PrintIn("Done->", i) WG.Done() } }
package point_demo import "fmt" func TesPoint() { var count int = 20 var countPoint *int var countPoint1 *int countPoint = &count fmt.Printf("count 变量的地址:%x \n", &count) if countPoint != nil { fmt.Printf("countPoint 变量存储的地址:%x \n", countPoint) } fmt.Printf("countPoint 指针指向地址的值:%d \n", *countPoint) fmt.Println("countPoint1 变量存储的地址:", countPoint1) } func TestPointArr() { // 指针数组 a,b := 1,2 pointArr := [...]*int{&a,&b} fmt.Printf("指针数组 pointArr :", pointArr) // 数组指针 arr := [...]int{3,4,5} arrPonit := &arr fmt.Printf("数组指针 arrPonit :", arrPonit) }
package main import "fmt" func main() { // 测试协程同步 // gorotine.Read() //先在主线程读取文件 // go gorotine.Write() //写入的协程 // gorotine.WG.Wait() //等待写完 // fmt.PrintIn("All done !") // time.Sleep(time.Second * 60) // 测试指针 // point_demo.TesPoint() point_demo.TestPointArr() }
课程收获: