type Once

Once — это объект, который будет выполнять ровно одно действие.

type Once struct {
        // содержит фильтруемые или неэкспортируемые поля
}

Пример:

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
    }
}

results matching ""

    No results matching ""