Junior — Middle
106
Go тілінде ағындарды синхрондауда sync.Once типінің негізгі рөлі қандай?
AI-дан жауап
sobes.tech AI
Тип sync.Once в Go используется для гарантии, что определённый фрагмент кода выполнится ровно один раз, даже если к нему обращаются из нескольких потоков (горутин).
Основная роль — безопасная инициализация ресурсов (например, создание синглтона), чтобы избежать гонок и повторного выполнения.
Пример использования:
var once sync.Once
var config *Config
func loadConfig() {
config = &Config{/* инициализация */}
}
func GetConfig() *Config {
once.Do(loadConfig) // loadConfig вызовется только один раз
return config
}
Таким образом, sync.Once обеспечивает потокобезопасное однократное выполнение функции.