使用 go.uber.org/atomic
Go 的 sync/atomic
包仅仅提供针对原始类型(int32, int64, …)的原子操作。因此,很容易忘记使用原子操作来读写变量。
go.uber.org/atomic 通过隐藏基础类型,使这些操作类型安全。并且,它还提供一个方便的 atomic.Bool
类型。
Bad | Good |
---|---|
|
|
Go 的 sync/atomic
包仅仅提供针对原始类型(int32, int64, …)的原子操作。因此,很容易忘记使用原子操作来读写变量。
go.uber.org/atomic 通过隐藏基础类型,使这些操作类型安全。并且,它还提供一个方便的 atomic.Bool
类型。
Bad | Good |
---|---|
|
|
本文档使用 BookStack 构建