Junior — Middle
Go dilində goroutine-lər arasında tapşırıqların idarə olunması və paylanması necə həyata keçirilir?
sobes.tech Süni İntellekt
AI-dan cavab
Go dilində, tapşırıqları idarə etmək və bölüşdürmək Go-nun daxili işləmə mühitinə daxil edilmiş planlayıcı (scheduler) tərəfindən həyata keçirilir. Goroutinlər yüngül axınlardır və go açar sözü ilə işə salınır.
Go planlayıcısı goroutinləri sistem axınlarına (OS threads) bölüşdürür və onların icrasını idarə edir, bu, rəqabət və paralelliyi təmin edir. O, M:N modelindən istifadə edir, burada M sistem axınlarının sayı, N isə goroutinlərin sayıdır.
Goroutin yaratmaq nümunəsi:
func sayHello() {
fmt.Println("Goroutin-dən salam")
}
func main() {
go sayHello() // goroutin-i işə salır
time.Sleep(time.Second) // goroutin-in icrasına vaxt verir
}
Bu şəkildə, proqramçı sadəcə goroutin-i işə salır və Go-ın işləmə mühiti tapşırıqları bölüşdürür və arasında keçid edir.