once 原理 原子操作并发bug

08 | Once:一个简约而不简单的并发原语 https://time.geekbang.org/column/article/301113


type Once struct {
done uint32
}

func (o *Once) Do(f func()) {
if !atomic.CompareAndSwapUint32(&o.done, 0, 1) {
return
}
f()
}

 

 

posted @ 2023-04-18 01:07  papering  阅读(14)  评论(0编辑  收藏  举报