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 资源并将结果进行组合。

Singleflight

Semaphore

 

© 孙东辉 2022 - 2025