并发
已收录文章:57篇
-
Go 1.25 的 runtime/trace.FlightRecorder 用内存环形缓冲持续保留最近一小段运行时追踪,等异常延迟发生时再写出文件。本文对比传统 Start/Stop 采集方式,给出 HTTP 服务接入、触发写盘和资源边界检查。425 收藏
-
Go 中用 buffered channel 或 golang.org/x/sync/semaphore 限制并发都能工作,但取消传播、加权资源和任务排队方式不同。本文从一个批量抓取场景出发,对比两种实现的边界,并给出选择与验收清单。384 收藏
-
Go 的 sync 一次性初始化器适合把稳定结果封装成函数,但初始化失败也会被缓存。本文用配置加载和重试边界说明一次性函数、OnceFunc 与可重试初始化该怎么选。379 收藏
-
并行流不是把线程数调大就会变快。本文用同一批数据对比串行流与并行流,解释 ForkJoinPool.commonPool 的参与方式、任务粒度、共享资源和压测边界,帮助你在真实服务里做出可复核的选择。378 收藏
-
调用 time.Ticker.Stop 后,程序仍可能处理一次已经进入通道的时间值。关键不在于 Stop 会不会清空通道,而在于退出信号、通道消费和任务收尾的顺序。本文用可运行示例拆开这个边界。363 收藏
-
context.WithoutCancel 会保留父 Context 的 Value,但故意切断 Done、Err、Deadline 和 Cause。本文用 Go 1.21+ 的最小示例说明适用场景、迁移边界与验收方法。344 收藏
-
Python 用 functools.lru_cache 缓存配置读取函数后,配置文件已经更新,接口却还返回旧值。问题通常不在文件读取,而在缓存键和清理时机。本文从一个可复现的小场景出发,说明 cache_clear、参数设计和并发刷新时需要核对的边界。339 收藏
-
Go 从 channel 接收时,关闭后的读取会立刻返回元素类型的零值。本文用订单事件场景说明如何用第二个返回值 ok 区分真实数据、关闭信号与业务结束条件,并给出可复查的写法。333 收藏
-
文章 · python教程 | 1个月前 | 并发 · python · logging · 故障排查 · 优雅停机 日志丢失 QueueHandler 日志队列 Python QueueListenerPython 用 QueueHandler 把日志交给后台线程后,停机阶段不能只依赖进程退出。本文从日志资产、队列排空、监听器停止和异常收尾四个边界出发,给出一套可复查的优雅停机写法。316 收藏
-
Python 3.14 将 free-threaded build 纳入正式支持。它能让设计得当的 CPU 密集型多线程工作负载利用多核,但不是把现有服务切换后就自动提速。本文从扩展兼容、共享状态、压测与回退四个角度拆解团队该如何判断与迁移。314 收藏
-
Golang · Go问答 | 2个月前 | 并发 · 故障排查 · Go问答 · encoding/json · encoding/json atomic.Value Go配置热加载 Decoder 配置复用 旧值残留Go 服务热加载 JSON 配置时,偶发读到旧值通常不是文件没有更新,而是解码目标被复用、缺失字段没有覆盖旧内容,或读写过程没有通过不可变快照切换。本文从一次线上故障切入,给出可复现证据、修复代码和回归检查。311 收藏
-
Go 的 context.WithCancelCause 能让调用方同时看到 context.Canceled 和真正的取消根因。本文用一个请求链示例拆解取消传播、Cause 读取、父子上下文竞速与错误包装边界。309 收藏