当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


GO Once用法及代码示例


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

相关用法


注:本文由纯净天空筛选整理自golang.google.cn大神的英文原创作品 Once。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。