同步原语 共 4 篇文章

Go sync.Cond 为什么必须在 Wait 前加锁与伪唤醒的防范
2026-05-24 03:13:13
Go sync.Cond 为什么必须在 Wait 前加锁与伪唤醒的防范 Go 语言的 sync.Cond 是一个强大的同步原语,用于在共享状态发生变化时通知等待的 goroutine。然而,它的使用比 mutex 和 channel 更容易出错。本文将直接剖析两个核心问题:为什么 Wait 方法调用
Go语言 sync.Cond Wait方法
8 0
Go语言sync.WaitGroup的Add和Done不匹配导致死锁
2026-05-06 00:19:44
Go语言sync.WaitGroup的Add和Done不匹配导致死锁 Go 语言中的 sync.WaitGroup 是用于等待一组 Goroutine 完成执行的同步原语。死锁通常发生在 Add 增加的计数器与 Done 减少的计数器数量不一致,或者 Wait 被调用时计数器非零的情况下。解决此问题
Go语言 死锁 并发编程
38 0
Go 等待组:sync.WaitGroup 与同步
2026-04-03 21:07:18
Go 等待组:sync.WaitGroup 与同步 在 Go 语言中,并发是核心特性之一。你经常需要启动多个 goroutine(轻量级线程)来并行处理任务,但主程序不能提前退出——否则后台 goroutine 会被强制终止。sync.WaitGroup 就是用来解决这个问题的标准工具:它让你能“等
Go并发 sync.WaitGroup goroutine同步
68 0
Go 条件变量:sync.Cond 与等待通知
2026-04-02 10:26:18
Go 条件变量:sync.Cond 与等待通知 Go 语言的 sync 包提供了多种同步原语,其中 sync.Cond 是一个用于协调 goroutine 之间“等待通知”行为的条件变量。它常用于解决多个 goroutine 需要等待某个共享状态发生变化后再继续执行的问题。 何时使用 sync.Co
Go sync.Cond 条件变量
52 0