【备战春招】第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-12-20go-zero 框架的 RPC 服务 启动start和停止 底层是怎么实现的?-icode9专业技术文章分享
- 2024-12-19Go-Zero 框架的 RPC 服务启动和停止的基本机制和过程是怎么实现的?-icode9专业技术文章分享
- 2024-12-18怎么在golang中使用gRPC测试mock数据?-icode9专业技术文章分享
- 2024-12-15掌握PageRank算法核心!你离Google优化高手只差一步!
- 2024-12-15GORM 中的标签 gorm:"index"是什么?-icode9专业技术文章分享
- 2024-12-11怎么在 Go 语言中获取 Open vSwitch (OVS) 的桥接信息(Bridge)?-icode9专业技术文章分享
- 2024-12-11怎么用Go 语言的库来与 Open vSwitch 进行交互?-icode9专业技术文章分享
- 2024-12-11怎么在 go-zero 项目中发送阿里云短信?-icode9专业技术文章分享
- 2024-12-11怎么使用阿里云 Go SDK (alibaba-cloud-sdk-go) 发送短信?-icode9专业技术文章分享
- 2024-12-10搭建个人博客网站之一、使用hugo创建个人博客网站