Junior — Middle
Go tilida 'Once' tushunchasini tushuntirib bera olasizmi va qaysi hollarda qo'llaniladi?
sobes.tech AI
AIdan javob
Go tilida, sync.Once — bu ma'lum bir funksiyaning faqat bir marta bajarilishini ta'minlaydigan tuzilma, hatto chaqiriq bir vaqtning o'zida bir nechta gorutinlardan bo'lsa ham. Bu, ma'lumotlar bazasi bilan ulanishni o'rnatish yoki konfiguratsiyani yuklash kabi, faqat bir marta yaratilishi kerak bo'lgan resurslarni boshlash uchun foydalidir.
Foydalanish misoli:
var once sync.Once
func initialize() {
fmt.Println("Boshlash tugallandi")
}
func main() {
for i := 0; i < 5; i++ {
go func() {
once.Do(initialize)
}()
}
time.Sleep(time.Second) // Gorutinlarning tugashini kutish
}
Ushbu misolda, initialize funksiyasi aniq bir marta chaqiriladi, gorutinlar sonidan qat'i nazar.