Junior — Middle
İcra vaxtının idarə olunması kontekstində WithTimeout funksiyasının WithDeadline ilə fərqi nədir?
sobes.tech Süni İntellekt
AI-dan cavab
Go'da WithTimeout və WithDeadline funksiyaları zaman məhdudiyyətli kontekst yaratmaq üçün istifadə olunur, lakin bu məhdudiyyətin təyin olunma üsulu ilə fərqlənir:
-
WithTimeout(parent, timeout)cari vaxtdantimeoutmüddət sonra avtomatik olaraq ləğv olunan kontekst yaradır. Yəni, timer çağırış zamanı başlayır. -
WithDeadline(parent, deadline)müəyyən bir vaxtda,deadline(tiptime.Time) olan kontekst yaradır. Bu, kontekstin tam olaraq nə vaxt bitəcəyini təyin etməyə imkan verir.
Nümunə:
ctx1, cancel1 := context.WithTimeout(context.Background(), 5*time.Second)
// ctx1, indi 5 saniyə sonra ləğv olunacaq
deadline := time.Now().Add(5 * time.Second)
ctx2, cancel2 := context.WithDeadline(context.Background(), deadline)
// ctx2, dəqiq deadline vaxtında ləğv olunacaq
Beləliklə, WithTimeout müddət təyin etmək üçün əlverişlidir, WithDeadline isə müəyyən bir vaxtda vacib olan hallarda istifadə olunur.