Sobes.tech
Junior — Middle

ƏS-nin planlaşdırıcısı şəbəkə sorğusu edən funksiyanın icrasını necə idarə edir?

sobes.tech Süni İntellekt

AI-dan cavab

Go-da planlayıcı (scheduler) yüngül iş parçacığı olan goroutine-ləri idarə edir. Bir funksiya şəbəkə sorğusu etdikdə, adətən giriş/çıxış əməliyyatında bloklanır.

Go-nun planlayıcısı bloklamayan giriş-çıxış və asinxron sistem çağırışlarından istifadə edir. Bir goroutine şəbəkədən cavab gözləyərkən, planlayıcı onu gözləmə vəziyyətinə keçirir və digər goroutine-lərin icrasına keçid edir.

Bu, sistem resurslarından səmərəli istifadə etməyə və əməliyyat sisteminin ipini bloklamamağa imkan verir. Şəbəkə sorğusu tamamlandıqda, planlayıcı goroutine-in icrasını davam etdirir.

Nümunə:

func fetch(url string) {
    resp, err := http.Get(url) // şəbəkə sorğusu
    if err != nil {
        log.Fatal(err)
    }
    defer resp.Body.Close()
    // cavabın emalı
}

func main() {
    go fetch("http://example.com")
    // digər goroutine-lər paralel olaraq icra olunur
}

Bu şəkildə, Go planlayıcısı goroutine-ləri səmərəli idarə edir, onları bloklayan əməliyyatlar zamanı, məsələn, şəbəkə sorğuları, dəyişir.