设计模式
Extious
  1. 单例

有时候需要确保在高并发的场景下有些事情只执行一次,比如加载配置文件、关闭管道等。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
var oc sync.Once
var a int = 5

func main() {
go func() {
oc.Do(func() {
a++
})
}()
go func() {
oc.Do(func() {
a++
})
}()
time.Sleep(1 * time.Second)
fmt.Println(a) //6
}
由 Hexo 驱动 & 主题 Keep
总字数 39.4k 访客数 访问量