GO语言"sync"包中"Once"类型的用法及代码示例。
一次是一个将执行一个动作的对象。
A 首次使用后不得复制一次。
用法:
type Once struct {
// contains filtered or unexported fields
}
例子:
package main
import (
"fmt"
"sync"
)
func main() {
var once sync.Once
onceBody := func() {
fmt.Println("Only once")
}
done := make(chan bool)
for i := 0; i < 10; i++ {
go func() {
once.Do(onceBody)
done <- true
}()
}
for i := 0; i < 10; i++ {
<-done
}
}
输出:
Only once
相关用法
- GO OnesCount8用法及代码示例
- GO OnesCount16用法及代码示例
- GO OnesCount32用法及代码示例
- GO OnesCount64用法及代码示例
- GO OnesCount用法及代码示例
- GO OpenFile用法及代码示例
- GO PutUvarint用法及代码示例
- GO Scanner.Scan用法及代码示例
- GO LeadingZeros32用法及代码示例
- GO NewFromFiles用法及代码示例
- GO Regexp.FindString用法及代码示例
- GO Time.Sub用法及代码示例
- GO Regexp.FindAllIndex用法及代码示例
- GO Encode用法及代码示例
- GO ResponseRecorder用法及代码示例
- GO Value用法及代码示例
- GO StreamWriter用法及代码示例
- GO Fscanln用法及代码示例
- GO Values.Get用法及代码示例
- GO NumError用法及代码示例
注:本文由纯净天空筛选整理自golang.google.cn大神的英文原创作品 Once。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。