Sobes.tech
Senior

Gorutina nədir? O necə qurulub?

sobes.tech Süni İntellekt

AI-dan cavab

Go dilində goroutine — yüngül icra axınıdır. Sistem ipliklərindən fərqli olaraq, goroutine-lər Go runtime tərəfindən idarə olunur və çox kiçik yığım (bir neçə kilobaytdan başlayır və dinamik olaraq böyüyə bilər). Bu, yüz minlərlə goroutine-i eyni vaxtda aşağı xərclərlə işlətməyə imkan verir.

Goroutine quruluşu:

  • Goroutine yaradıldıqda (go operatoru ilə), Go planlayıcısı onu icra üçün hazır tapşırıqlar növbəsinə yerləşdirir.
  • Go runtime M:N planlaşdırma istifadə edir: M sistem ipliyi (OS iplikləri) N goroutine-i idarə edir.
  • Goroutine-lər runtime səviyyəsində kontekst dəyişir, bu isə sistem ipliklərinin dəyişdirilməsindən daha sürətlidir.
  • Hər bir iplik (M) bir neçə goroutine (N) icra edə bilər və bloklamalar və ya ehtiyac olduqda arasında keçid edə bilər.

Goroutine yaradılması nümunəsi:

func sayHello() {
    fmt.Println("Goroutine-dən salam")
}

func main() {
    go sayHello() // goroutine-i işə salırıq
    time.Sleep(time.Second) // goroutine-in icra etməsi üçün gözləyirik
}