Sobes.tech
Junior — Middle

Planlaşdırıcı ümumi gözləmə siyahısından goroutine-ləri necə paylayır?

sobes.tech Süni İntellekt

AI-dan cavab

Go'dakı goroutine planlayıcısı, ümumi gözləmə siyahısından goroutine'leri M:N modelinə görə paylayır; burada M, sistem axınlarının (OS axınları) sayını və N, goroutine'lərin sayını göstərir.

Əsas nöqtələr:

  • Goroutine'lər icra üçün hazır olan tapşırıqların növbəsinə (icra növbəsinə) yerləşdirilir.
  • Planlayıcı goroutine'ləri mövcud axınlara təyin edir.
  • Əgər bir axın məşğuldursa, planlayıcı icraatı başqa bir goroutine-ə keçə bilər.
  • Planlayıcı yük balansını və goroutine aclığını qarşısını almaq üçün alqoritmlər istifadə edir.

Bunu belə təsəvvür edə bilərsiniz:

for {
    g := scheduler.getNextGoroutine()
    m := scheduler.getAvailableThread()
    m.run(g)
}

Beləliklə, planlayıcı goroutine'ləri axınlar arasında səmərəli paylayır, eyni zamanda paralel icra və yüksək performans təmin edir.