Go问答技术文章
-
GOMEMLIMIT 是 Go runtime 的软内存限制,不是 cgroup 或操作系统的硬性封顶。本文从统计范围、GC 让步机制、运行指标和并发控制四个方面说明超限原因与配置边界。109 收藏 -
Golang · Go问答 | 1小时前 | HTTP · 故障排查 · net/http · Go问答 · 流式响应 · Go FLUSH ResponseController ResponseWriter 代理缓冲 HTTP流式响应
ResponseController.Flush 只负责把 Go 服务端当前可刷新的响应数据向下游推进,并不承诺浏览器或代理立即交付。本文从 ResponseWriter 包装、Flush 错误、响应格式和代理缓冲四条链路定位客户端无数据的原因。108 收藏 -
UDPConn.ReadFrom 没有数据时会持续阻塞。本文用 SetReadDeadline 建立接收时间边界,说明 deadline 的绝对时间语义、循环刷新方式,以及如何区分超时、关闭和真实网络错误。108 收藏 -
Go 模块代理返回 404 和 410 时,命令通常都会按 GOPROXY 顺序回退;真正需要排查的是请求资源、分隔符和其他终止错误。本文用下载命令拆开判断路径。107 收藏 -
Golang · Go问答 | 1天前 | 并发安全 · goroutine · Go问答 · Go结构化并发 runtime/secret并发读取 secret.Do goroutine Go密钥生命周期 WaitGroup敏感数据
runtime/secret 会让作用域内新建的 goroutine 继承秘密模式,但不会替你同步共享切片。本文用结构化并发说明密钥只读共享、worker 独立状态、公开结果复制、取消等待与平台降级的正确边界。107 收藏 -
B.Loop 只负责迭代与计时,不会恢复循环外可变状态。切片长度、容量、map 内容或缓冲区会跨轮累积,导致每次操作不再等价。本文用可运行示例区分新建成本与复用成本,并说明重置是否计时。105 收藏 -
Go 1.27 的可移植 simd 包在 CPU 不支持 SIMD 时会使用纯 Go 仿真实现;部分能力不足时默认降到可用向量宽度或仿真,但强制宽度可能触发 panic。103 收藏 -
Go 1.27 的 goroutineleak 剖析没有业务标签时,仍可从永久阻塞的操作栈回溯到调用者和 goroutine 创建点。本文给出 pprof 接入、采集、定位与修复方法。102 收藏 -
Golang · Go问答 | 18小时前 | 错误处理 · Context · 并发编程 · go语言 · Go context context.Cause 取消原因 WithCancelCause CancelCauseFunc
context.Cause 返回父级原因,是因为父级取消会向子级传播,而子级或任一父级的首次取消会固定该子级的 cause。本文用两种取消顺序说明 Err、Cause、超时和 WithoutCancel 的边界。102 收藏 -
Fscan 把换行视为普通空白,可跨行读取参数;Fscanln 在换行处停止,并要求最后一个参数后紧接换行或 EOF。本文用同一输入说明选择与错误边界。100 收藏