并发
已收录文章:23篇
-
Go 1.21 引入的内置 clear 可以直接清空 map 或切片,但它不会让并发访问变安全,也不会替你决定是否复用底层存储。本文从请求缓存复用场景对比 delete 循环、重新 make 和 clear 的语义、容量与并发边界。137 收藏
-
Python 服务在并发升高后,日志格式化和磁盘写入容易挤占请求线程。本文用 QueueHandler 与 QueueListener 拆开日志生产和落盘,比较直接写文件、队列日志两种方案,给出可运行示例、压测口径与优雅退出处理。268 收藏
-
文章 · java教程 | 2天前 | 并发 · Java · CompletableFuture · Java CompletableFuture 任务取消 orTimeout completeOnTimeoutCompletableFuture 超时后,调用方返回并不等于后台任务停止。本文用一个可复现实验对比 orTimeout、completeOnTimeout 与 cancel,给出超时降级、线程中断和资源回收的检查方法。152 收藏
-
文章 · python教程 | 2天前 | 并发 · python · 故障排查 · asyncio · 任务取消 · Python asyncio.create_task Python 任务取消 asyncio CancelledError Python 异步任务收尾Python 异步接口超时后,后台任务仍在访问数据库或写文件,常见原因不是 cancel() 失效,而是任务没有被保存、取消没有被等待,或协程吞掉了 CancelledError。本文用一个可复现的 asyncio 故障现场拆开这条链路,并给出带超时、回收和日志核对的改法。490 收藏
-
Python 3.14 将 free-threaded build 纳入正式支持。它能让设计得当的 CPU 密集型多线程工作负载利用多核,但不是把现有服务切换后就自动提速。本文从扩展兼容、共享状态、压测与回退四个角度拆解团队该如何判断与迁移。314 收藏
-
Golang · Go问答 | 3天前 | 并发 · Go问答 · Go测试 · testing/synctest · 虚拟时间 · time.Sleep Go 1.25 testing/synctest Go并发测试 虚拟时间 flaky testGo 并发测试里大量 time.Sleep 往往又慢又不稳定。Go 1.25 已将 testing/synctest 纳入标准库,可在受控测试环境中使用虚拟时间和 synctest.Wait 检查后台任务的稳定状态。本文用延迟写缓存的例子说明最小迁移方式、适用边界和回归检查。246 收藏
-
Go 从 channel 接收时,关闭后的读取会立刻返回元素类型的零值。本文用订单事件场景说明如何用第二个返回值 ok 区分真实数据、关闭信号与业务结束条件,并给出可复查的写法。333 收藏
-
Golang · Go问答 | 4天前 | 并发 · 性能优化 · sync.Pool · bytes.Buffer · Go问答 · reset bytes.Buffer 对象复用 Go sync.Pool 数据串行sync.Pool 复用 bytes.Buffer 时,旧内容残留和过早归还都会让响应出现串数据。本文从现象、最小复现到 Reset 与归还时机,给出可直接用于编码响应的安全写法。294 收藏
-
大模型接口出现 429 时,连续立刻再发往往只会让队列更长。本文按运行手册的节奏说明如何保留响应线索,区分请求数量、令牌总量与并发积压三类原因,再用限并发、缩短上下文和带抖动的退避把线上对话从拥塞中拉回来。432 收藏
-
Golang · Go问答 | 6天前 | 并发 · golang · go · 循环变量 · Go 1.22 · 模块升级 · Goroutine 闭包 循环变量 go.mod Go 1.22 loopvar 升级迁移Go 1.22 将 for 循环声明的变量改为每次迭代独立,但新语义是否生效取决于模块 go.mod 的 go 版本:只有声明 go 1.22 或更高版本的模块会启用。升级时应重点复查 goroutine、闭包和 t.Parallel 子测试;旧版模块中的变量拷贝仍可能是必要保护,不能只因编译器升级就批量删除。277 收藏
-
Golang · Go教程 | 6天前 | 并发 · 错误处理 · go · Context · 排错 · Go 错误链 context.WithCancelCause context.Cause 取消原因一次请求提前结束时,ctx.Err() 往往只剩下 context.Canceled。用 context.WithCancelCause 和 context.Cause 可以保留真正的中断原因,并把它用于日志、指标和调用方处理;关键是区分父子 Context 的先后关系。366 收藏
-
Golang · Go教程 | 6天前 | 并发 · WaitGroup · go · worker pool · 服务停机 · Go channel WaitGroup 优雅停机 worker pool 任务排空从一次发布后异步任务少处理的故障出发,拆解 Go worker pool 的关闭顺序:先停止接收、再关闭任务输入、让 worker 排空并由 WaitGroup 收尾,同时说明超时退出与任务持久化的边界。207 收藏