Junior — Middle
Operatsion tizim rejalashtiruvchisi tarmoq so'rovini amalga oshiradigan funksiyani qanday boshqaradi?
sobes.tech AI
AIdan javob
Go'da jadval (scheduler) goroutinlarni boshqaradi, ular yengil oqimlar. Funktsiya tarmoq so'rovini bajarayotganda, odatda, kirish/chiqish operatsiyasida bloklanadi.
Go jadvali bloklamaydigan kirish/chiqish va asinxron tizim chaqiriqlaridan foydalanadi. Goroutine tarmoqdan javob kutayotganida, jadval uni kutish holatiga o'tkazadi va boshqa goroutinlarni bajarishga o'tadi.
Bu tizim resurslaridan samarali foydalanishga imkon beradi va operatsion tizim ipini bloklamaydi. Tarmoq so'rovi tugagach, jadval goroutinni davom ettiradi.
Misol:
func fetch(url string) {
resp, err := http.Get(url) // tarmoq so'rovi
if err != nil {
log.Fatal(err)
}
defer resp.Body.Close()
// javobni qayta ishlash
}
func main() {
go fetch("http://example.com")
// boshqa goroutinlar parallel ravishda bajariladi
}
Shu tarzda, Go jadvali goroutinlarni samarali boshqaradi, ularni bloklovchi operatsiyalar, masalan, tarmoq so'rovlari davomida almashtiradi.