随笔分类 - Go
摘要:官网文档https://studygolang.com/pkgdoc Go flag包的基本使用 flag包实现了命令行参数的解析。 导包:import "flag" flag包支持的命令行参数类型有bool、int、int64、uint、uint64、float float64、string、du
阅读全文
摘要:Beego 本文主要是对官方文档搬运 中文新版文档网站 https://beego.gocn.vip/ 快速开始 首先确保自己已经安装了 GO,版本在 1.16 之上,同时设置了 GOPATH 环境变量,并且将 GOPATH/bin 加入到了环境变量。 我们建议你直接使用最新的稳定版本,因为我们会尽
阅读全文
摘要:GORM 写这博客时,gorm最新版本是v1.22.5。实际使用时,文档以官方文档为准。本文主要是对官方文档的搬运。 官方文档 https://gorm.io/zh_CN/docs/index.html 连接到数据库 GORM 官方支持的数据库类型有: MySQL, PostgreSQL, SQli
阅读全文
摘要:worker pool(goroutine池) 在工作中我们通常会使用可以指定启动的goroutine数量–worker pool模式,控制goroutine的数量,防止goroutine泄漏和暴涨。 一个简易的work pool示例代码如下: func worker(id int, jobs <-
阅读全文
摘要:grpc的流模式例子 工程结构: stream_grpc_test ├─client │ client.go │ ├─proto │ stream.pb.go │ stream.proto │ └─server server.go proto文件: syntax = "proto3"; option
阅读全文
摘要:select 当程序有多个channel协同工作,ch1,ch2,某一时刻,ch1或者ch2触发了,程序要做响应的处理。使用select来监听多个通道,当管道被触发时(写入数据,读取数据,关闭管道)。 select语法与switch case很像,但是所有的分支条件都必须是通道IO。它有一系列cas
阅读全文
摘要:Protobuf与GRPC Protobuf 下载protoc-3.19.3-win64.zip https://github.com/google/protobuf/releases 解压后,把bin路径加入环境变量,比如D:\Program Files\protoc-3.19.2-win64\b
阅读全文
摘要:Go的channel 简介 在Go中,提倡使用通信来代替共享内存。也就是需要在goroutine之间共享资源的时候,使用channel来进行数据传递、交换。而channel就是用来传递数据的一个数据结构,同时也是一种特殊的类型,在任何时候,同时只能有一个goroutine访问channel进行发送和
阅读全文
摘要:package main import ( "fmt" "sync" "time" ) // 协程计数器 var wg sync.WaitGroup var rwLock sync.RWMutex // 读写锁 var sum int func main() { fmt.Println("嘻嘻")
阅读全文
摘要:package main import ( "fmt" "sync" ) // 协程计数器 var wg sync.WaitGroup var lock sync.Mutex //定义一个互斥锁 var sum int func main() { fmt.Println("嘻嘻") wg.Add(2
阅读全文
摘要:goroutine的使用以及sync.WaitGroup emmm,没啥好介绍的,就简单的使用。 package main import ( "fmt" "sync" ) //协程计数器 var wg sync.WaitGroup func main() { fmt.Println("嘻嘻") fo
阅读全文