Senior
Go'da kontekst nima va nima uchun kerak?
sobes.tech AI
AIdan javob
Go'da context — bu paket va tur, u ishlash davomida bekor qilish signallari, vaqt chegaralari va boshqa muhim ma'lumotlarni goroutine'lar o'rtasida uzatish uchun ishlatiladi.
context ning asosiy vazifalari:
- Vaqt o'tishi yoki foydalanuvchi tomonidan bekor qilingan taqdirda operatsiyalarni bekor qilish imkonini beradi (masalan, ma'lumotlar bazasi yoki HTTP so'rovlarida).
- Operatsiyalar uchun vaqt chegaralarini (deadlines) uzatadi.
- Funktsiyalar o'rtasida qiymatlarni (masalan, so'rov identifikatorlari) uzatishga imkon beradi.
Foydalanish misoli:
ctx, cancel := context.WithTimeout(context.Background(), time.Second*5)
defer cancel()
select {
case result := <-doWork(ctx):
fmt.Println("Natija:", result)
case <-ctx.Done():
fmt.Println("Operatsiya bekor qilindi yoki vaqt o'tdi")
}
Bu yerda, ctx doWork funksiyasiga uzatiladi va u kontekst bekor qilinsa yoki vaqt o'tib ketsa, o'z ishini to'xtatishi mumkin. Bu, operatsiyalar va resurslarning umrini boshqarishda yordam beradi.