Junior — Middle
Vazifalarni bajarish kontekstida, goroutine va tizim ipi o'rtasidagi farq nima?
sobes.tech AI
AIdan javob
Gorutina — bu Go (runtime) ishga tushirish muhitining boshqaradigan yengil bajarish birligi bo‘lib, juda kam xotira talab qiladi va bir vaqtning o‘zida ko‘p sonda ishga tushirilishi mumkin. Tizim ipi (thread) — bu operatsion tizimning yanada og‘irroq rejalashtirish birligidir.
Asosiy farqlar:
- Gorutinalar tizim iplariga qaraganda resurslar jihatidan ancha yengil.
- Gorutinalarning rejalashtirilishi Go runtime ichida amalga oshadi, OS emas.
- Minglab gorutinalar bir vaqtning o‘zida ishlay oladi, odatda tizim iplarining soni esa kamroq bo‘ladi, chunki ular yaratish va almashtirish uchun xarajatlar talab qiladi.
Gorutina yaratish misoli:
func vazifa() {
fmt.Println("Vazifa bajarilmoqda")
}
func main() {
go vazifa() // gorutina ishga tushurish
time.Sleep(time.Second) // gorutina bajarilishini kutamiz
}
Shu tarzda, gorutinalar ko‘p vazifalarni samarali tarzda parallel bajarishga imkon beradi, kamroq resurs bilan.