Go 实现并发同步的几种方式
date
Jul 6, 2023
slug
go-goroutine-send-msg
status
Published
tags
Go
Code
summary
原子语句、channel、基本并发语句、扩展
type
Post
Created Time
Oct 28, 2023 01:45 PM
Updated Time
Oct 28, 2023 01:45 PM
AI summary
本文介绍了 Go 语言实现并发同步的几种方式,包括 Mutex、RWMutex、WaitGroup、Cond、Pool、Once、Context、sync.Map、ErrGroup、Singleflight 和 Semaphore。
Status
原子语句
其中,Swap 和 Store 输出的值不确定,因为没有对计数器进行保护,多个 goroutine 对其进行了读写操作。
Add
CAS
Load
Store
Swap
channel
有缓冲 channel 实现
无缓冲 channel 实现
基本并发语句
Mutex
RWMutex
WaitGroup
Cond
Pool
Once
用于实现某个操作的单次执行,即保证某个函数只会被执行一次。
Context
sync.Map
扩展
ErrGroup
并发同步获取多个 URL 资源并将结果进行组合。