跳至正文
LYon's Blog

Go 语言中 Goroutine 的并发数量控制

虽然 Goroutine 号称占用的内存非常小,初始化只有几 K 大小,但是很多时候确实还是需要控制一台机器的 Goroutine 的并发数量,以进行业务上的可控并发场景的需要,或防止异常情况下的CPU、内存过载进而导致服务不可用的情况。 通过 Channel 控制 利用带缓冲区的 Channel 可以实现一个分发队列,队列里有值时就可以给 Goroutine 使用,没有值时 Goroutine …

Gin Web 框架中 Validate 使用总结

在处理 HTTP 请求的时候,需要经常对请求的参数做 validate 验证,在 Django 框架里有 Serializer 里的 validate 方法来做校验,现在在 Go 语言的 Gin 框架下,也有类似的实现。Gin 使用了 go-playground/validator 来做校验,下面主要介绍下使用方法。 binding 即绑定,validator 使用 binding 或 valid …

Go 程序取消子 Goroutine 的几种方式

Go 代码中如果有的 Goroutine 永远都不会退出,随着 Goroutine 的数量增长,内存泄露的风险也会变高。因此必须需要一种方法能够控制 Goroutine 的野蛮生长,在需要退出的场景下必须要主动退出。下面介绍几种方法来主动退出 Goroutine。 Context 方式 Context 包 Go 中的上下文 Context 包与 Goroutine 关系密切,上下文主要用在 Gor …

使用 Typora 来编辑你的 Hugo 博客R

AI 参与说明(Agent:Codex):2026-09-07 为本文补充历史方案提示,原有 Typora 与 Hugo 教程正文保留。 本文记录 2020 年使用 Typora、Hugo 与 GitHub Pages 的写作和部署方案。本站现已迁移到 Astro 与 Cloudflare Workers Static Assets,当前架构和发布流程见 这个博客 。 最近 typroa 用的比较 …

命令行Doc

自带的主要有 build, clean, get, install, list, run, and test run shell go run main.go -mod 选项, go help modules 查看详细, -mod 在其他部分命令中也可指定。 vendor mod readonly get 使用 @ 指定版本 shell go get github.com/go-playgroun …

标准库Doc

Buildin buildin 文档 https://golang.org/pkg/builtin uintptr 足够大、可以存放任何指针地址的类型。常用来将指针转换后进行寻址计算。 uintptr is an integer type that is large enough to hold the bit pattern of any pointer. go func Offsetof(x …

语言基础Doc

术语修订(2026-09-07,Agent:Codex):依据 Go specification 保留 rune 、channel 与 goroutine,并修正 channel 并发语义。此次运行记录:模型 gpt-6-astra ,reasoning effort ultra ,执行入口 Codex Desktop,提供方 openai ,CLI 版本 0.153.4 (不代表桌面 App 版 …

Go 标准库中涉及 I/O 操作的几个包的区别

工作中需要用 Go 读写一些 Excel 表等类型的文件,发现 Go 提供了很多关于 I/O 操作的包,比如 io、ioutil、bufio 等,于是在这里总结一下,主要目标是理清几个包之间在使用时如何选择。 io io 库提供了底层的接口定义,还有一些常量,比如 io.EOF 。最主要的,它定义了 io.Reader 、 io.Writer 和 io.Closer 等接口,在 Go 中很多方法都 …

Redis 的分布式锁使用注意

为什么需要分布式锁 锁机制用于管理对共享资源的并发访问控制,当同一服务的多台机器间需要控制并发的时候,需要保证服务间在同一时间只能被一个线程访问。由于 Redis 的特点是单进程,并且具有高性能的特点,所以一般用 Redis 来做分布式锁。另外分布式锁还有以下几个特点: 互斥性 :同一时刻只能有一个实例持有锁。 高可用 :部分节点宕机不会影响其他节点对锁的使用。 防止死锁 :如果客户端没有主动释放 …

学习钢琴半年的体会R

婚礼上为了给媳妇制造一个印象深刻的惊喜,我提前三个月去学了钢琴,现在回想起来也算是一件有意思的事情。6 月底报名后,经过和钢琴老师的讨论,对于我这种零基础短期想突击的,同时后期还想继续学下去的,最后老师推荐了我《月亮代表我的心》,尤其在老师弹了以后我自己也觉得这首曲子非常好。 于是我花了大约一个半月的时间打乐理基础,还有一个多月的时间专门学习这首曲子,在此之前我的乐理基础完全为零,从五线谱开始学。 …


© 2012 - 2025 YINDONGLIANG
博客助手

正在打开博客助手…