Go 并发进阶:WaitGroup vs ErrGroup 详解
Go 语言提供了丰富的并发原语,本文详细介绍 sync.WaitGroup 和 golang.org/x/sync/errgroup 的区别和使用场景。
简介
Go 的并发模型以 goroutine 和 channel 为核心,但在实际项目中,我们经常需要协调多个 goroutine 的执行。这就涉及到两组常用的工具:
- sync.WaitGroup:Go 标准库,简单同步
- errgroup:Go 扩展库,功能更强大
Go 语言提供了丰富的并发原语,本文详细介绍 sync.WaitGroup 和 golang.org/x/sync/errgroup 的区别和使用场景。
Go 的并发模型以 goroutine 和 channel 为核心,但在实际项目中,我们经常需要协调多个 goroutine 的执行。这就涉及到两组常用的工具:
Sony A7M4 创意外观风格如下。
ST: 适用于广泛的被摄体和场景的标准效果。
PT: 用于捕捉色调柔和的肌肤,非常适合拍摄肖像。
NT: 降低饱和度和锐度,以柔和的色调拍摄影像。这还适合捕捉将要用电脑修改的影像材料。
VV: 增强饱和度和对比度,用于拍摄色彩缤纷的场景和被摄体(如花卉、春绿、蓝天或海景)的夺目影像。
VV2: 创造出的影像具有明亮而生动的色彩,还带有丰富的清晰度。
FL: 创造出的影像具有氛围效果,在平静的色调中应用了强烈的对比,还加入了引人注目的天空及绿色植物的色彩。
IN: 创造出的影像抑制了对比度和饱和度,具有亚光纹理。
SH: 创造出的影像具有明亮、透明、柔和而生动的氛围。
BW: 用于以黑白单色调拍摄影像。
SE: 用于以褐色单色调拍摄影像。
在 AI 应用开发中,如何让大模型稳定地输出我们想要的格式?本文介绍如何使用 Golang 实现 Prompt Template,并结合 DeepSeek 的 JSON Mode 实现可靠的结构化输出。
Prompt Template 是将提示词模板化的技术,通过占位符动态注入变量,让同一套提示词可以处理不同输入。类似于 Web 开发中的模板引擎。
在做系统设计时,数据库选型是一个关键决策。MySQL 和 Elasticsearch 是两种不同定位的存储方案,今天结合实际项目经验,系统性地对比一下它们的适用场景。
| 特性 | MySQL | Elasticsearch |
|---|---|---|
| 定位 | 关系型数据库 | 分布式搜索和分析引擎 |
| 数据结构 | 行存储,B+树索引 | 倒排索引,文档型 |
| 擅长 | 事务、关联查询、结构化数据 | 全文搜索、聚合分析、海量数据 |
| 数据模型 | Table(表) | Index(索引),Document(文档) |
给两台 MacBook Pro 更换电池,折腾了一番,终于成功换好了。😄
一台是公司的 MacBook Pro 归个人,电池废了,续航只有半个小时;一台是自用好多年的 MacBook Pro,突然发现底部怎么放不平了,原来是电池老化鼓包了。
Redis 事务是一组命令的集合,通过 MULTI 和 EXEC 命令来执行。事务中的所有命令都会序列化,按顺序串行执行,不会被其他命令插入。本文深入解析 Redis 事务的特性和原子性问题。
Uber 的 Go 指导规范
https://github.com/uber-go/guide/blob/master/style.md
使用 JWT 保证服务间通信的安全
https://abekthink.github.io/backend/json-web-token/
MySQL 查询对大小写不敏感
https://www.jianshu.com/p/408daf82ac71
服务流量限制(漏桶、令牌桶)
https://chai2010.cn/advanced-go-programming-book/ch5-web/ch5-06-ratelimit.html
为什么推荐 InnoDB 引擎使用自增主键?
https://blog.csdn.net/zheng0518/article/details/76302167
MySQL 唯一性索引与 NULL 字段
https://yemengying.com/2017/05/18/mysql-unique-key-null/
HTTP 代理原理及实现
https://imququ.com/post/web-proxy.html
为什么使用通信来共享内存?
https://draveness.me/whys-the-design-communication-shared-memory
深入理解 Go-defer 的原理剖析
https://juejin.im/post/5d71d1edf265da03e52356fb
Nginx 实现 JWT 验证-基于 OpenResty 实现
https://segmentfault.com/a/1190000015677681
更加顺手的用好 Laravel 的多态关联
https://segmentfault.com/a/1190000020811031