Junior — Middle
Agar natijalar olinmasa, belgilangan vaqtdan so'ng gorutina qanday to'xtatiladi?
sobes.tech AI
AIdan javob
Go tilida, belgilangan vaqtdan so'ng gorutina bajarilishini to'xtatish uchun odatda select bilan timer yoki timeout bilan kontekst ishlatiladi.
time.After bilan misol:
select {
case result := <-ch:
// natijani qayta ishlash
case <-time.After(2 * time.Second):
// timeout — 2 sekund ichida natija olinmadi
}
Kontekst bilan misol:
ctx, cancel := context.WithTimeout(context.Background(), 2*time.Second)
defer cancel()
select {
case result := <-ch:
// natijani qayta ishlash
case <-ctx.Done():
// timeout yoki bekor qilish
}
Shunday qilib, agar natija vaqtda kelmasa, bajarilishini to'xtatish va timeoutni boshqarish mumkin.