【备战春招】第7天 Go语言语法进阶指南-协程同步&指针
2023/2/28 23:21:00
本文主要是介绍【备战春招】第7天 Go语言语法进阶指南-协程同步&指针,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
课程名称: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() }
课程收获:
- 使用go关键字启动协程
- 通常使用最大的协程数减一
- 协程间最灵活、最常用的方式是使用channel进行通信,并且可以在接收数据时使用select来随机接收来自多个管道的数据
- 可以使用系统提供的工具包:Add()增加一条记录,Done()减少一条记录,Wait()等待记录为0
- 注意星号使用,声明和取地址符
- 没有赋值的指针都是空的
- 不支持指针运算
- 指针数组:元素是地址,指针指向地址的指针
- 数组指针:类型是一个地址,指向数组的指针
这篇关于【备战春招】第7天 Go语言语法进阶指南-协程同步&指针的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-15SendGrid 的 Go 客户端库怎么实现同时向多个邮箱发送邮件?-icode9专业技术文章分享
- 2024-11-15SendGrid 的 Go 客户端库怎么设置header 和 标签tag 呢?-icode9专业技术文章分享
- 2024-11-12Cargo deny安装指路
- 2024-11-02MongoDB项目实战:从入门到初级应用
- 2024-11-01随时随地一键转录,Google Cloud 新模型 Chirp 2 让语音识别更上一层楼
- 2024-10-25Google Cloud动手实验详解:如何在Cloud Run上开发无服务器应用
- 2024-10-24AI ?先驱齐聚 BAAI 2024,发布大规模语言、多模态、具身、生物计算以及 FlagOpen 2.0 等 AI 模型创新成果。
- 2024-10-20goland工具下,如修改一个项目的标准库SDK的版本-icode9专业技术文章分享
- 2024-10-17Go学习:初学者的简单教程
- 2024-10-17Go学习:新手入门完全指南