Sobes.tech
Senior

Amalda kontekstlarni ishlatdingizmi? Hikoya qil.

sobes.tech AI

AIdan javob

Ha, men Go'da kontekstlardan muntazam foydalanaman, ayniqsa bajarilish vaqtini boshqarish va tarmoq so'rovlarida va gorutinlarda operatsiyalarni bekor qilish uchun. Kontekst bekor qilish signallari va vaqt chegaralarini chaqirish zanjiri orqali uzatishga imkon beradi, bu gorutinlar oqishini oldini olish va bajarilish vaqtini nazorat qilishga yordam beradi.

Foydalanish misoli:

ctx, cancel := context.WithTimeout(context.Background(), 2*time.Second)
defer cancel()

select {
case <-time.After(3 * time.Second):
    fmt.Println("operatsiya yakunlandi")
case <-ctx.Done():
    fmt.Println("operatsiya bekor qilindi yoki vaqt o'tdi")
}

Shunday qilib, agar operatsiya 2 sekunddan ko'proq davom etsa, u bekor qilinadi, bu esa dastur barqarorligi va javob berish qobiliyatini oshiradi.