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 (
gooperatoru 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
}