golang once实例
发布日期:2021-05-14 21:18:17 浏览次数:17 分类:精选文章

本文共 2191 字,大约阅读时间需要 7 分钟。

������������������������������������������������������������������������������������������������������������������������������������Go������������sync.Once������������������������������������������������������������������������������������������������������������once.Do()������������������������������������������������������

package test
import (
"fmt"
"sync"
)
var once sync.Once
func Onetest() {
var wg sync.WaitGroup // WaitGroup ���������
// ������ once.Do(onces) ������������������
for i, v := range make([]string, 10) {
once.Do(onces)
fmt.Println("count:", v, "---", i)
}
// ������ waitgroup ������������������
for i := 0; i < 10; i++ {
wg.Add(1)
go func() {
once.Do(onced)
fmt.Println(i)
wg.Done()
}()
}
wg.Wait()
}
func onces() {
fmt.Println("print onces")
}
func onced() {
fmt.Println("onced")
}
// ������������
var t *int
p := 1
t = &pshili // ������������������������������������������������������������������������������������������������

���������������������

  • sync.Once ������������

    • var once sync.Once ��������������� Once ������������ Do ��������������������������������������� onces ��� onced������������������������������������������
    • ������������������������������������������������ once.Do(onces) ��������� onces ������������������������
  • sync.WaitGroup ������������

    • var wg sync.WaitGroup ������������������������������������������������������������������wg.Add(1)������������������ goroutine���go func() { ... }()������
    • ��� goroutine ��������������� once.Do(onced) ������ onced ������������������������������ wg.Done() ��������������� marks done���
  • ���������������������

    • ������������������������������������������������ once.Do(onces) ������������������������������������
    • ��������������������������������������������� goroutine������������ waitgroup ���������������������������������
  • ������������������

    ��������������� sync.Once ��� sync.WaitGroup ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

    上一篇:golang panic和recover
    下一篇:golang testing框架组织测试case

    发表评论

    最新留言

    表示我来过!
    [***.240.166.169]2025年04月10日 16时35分38秒