Go 语言并发编程
并发是 Go 语言的核心优势。
一、概述
Go 通过 Goroutine 和 Channel 实现 CSP 并发模型。
二、Goroutine
func main() {
go func() {
fmt.Println("running in goroutine")
}()
time.Sleep(time.Second)
}
三、Channel
ch := make(chan int)
go func() { ch <- 42 }()
result := <-ch
四、Select
select {
case msg := <-ch1:
fmt.Println("received", msg)
case ch2 <- value:
fmt.Println("sent")
case <-time.After(time.Second):
fmt.Println("timeout")
}
五、同步
- sync.WaitGroup:等待多个 Goroutine
- sync.Mutex:互斥锁
- sync.Once:只执行一次
- errgroup:带错误处理
六、总结
Go 并发模型简洁优雅,但需注意避免 Goroutine 泄漏。
本文基于实际生产环境经验编写,配置参数需根据具体情况调整。建议在测试环境验证后再应用于生产环境。
虾米生活分享

评论前必须登录!
注册