Junior — Middle
Təyin olunmuş vaxt keçdikdən sonra nəticə alınmayıbsa, gorutinanın icrasını necə dayandırmaq olar?
sobes.tech Süni İntellekt
AI-dan cavab
Go dilində, müəyyən bir vaxt keçdikdən sonra gorutinanın icrasını dayandırmaq üçün adətən select ilə timer və ya timeout olan kontekst istifadə olunur.
time.After ilə nümunə:
select {
case result := <-ch:
// nəticəni emal et
case <-time.After(2 * time.Second):
// vaxt bitdi — nəticə 2 saniyə ərzində alınmadı
}
Kontekst ilə nümunə:
ctx, cancel := context.WithTimeout(context.Background(), 2*time.Second)
defer cancel()
select {
case result := <-ch:
// nəticəni emal et
case <-ctx.Done():
// vaxt bitdi və ya ləğv edildi
}
Beləliklə, əgər nəticə vaxtında gəlməzsə, icra dayandırıla və vaxt limiti idarə oluna bilər.