Junior — Middle
Go tilida goroutine'lar qanday amalga oshiriladi va boshqariladi?
sobes.tech AI
AIdan javob
Go'da gorutinlar — bu Go ish vaqti tomonidan boshqariladigan yengil oqimlar bo'lib, operatsion tizim tomonidan emas. Ular minimal resurslar bilan konkurrent kod yozishga imkon beradi.
Gorutinlarni amalga oshirish va boshqarishning asosiy jihatlari:
- Yaratish: Gorutina
gokalit so'zi yordamida funksiyani chaqirishdan oldin boshlanadi. - Rejalashtiruvchi: Go ning o'z rejalashtiruvchisi bor, u gorutinlarni tizim iplariga taqsimlaydi (M:N rejalashtirish).
- Yakun: Har bir gorutina dinamik yostiqqa ega bo'lib, ehtiyojga qarab o'sishi yoki kamayishi mumkin, boshlang'ich holatda bir necha kilobayt.
- Aloqa: Gorutinlar o'rtasida sinxronizatsiya va ma'lumot almashish uchun kanallar ishlatiladi.
Gorutina yaratish misoli:
func sayHello() {
fmt.Println("Gorutindən salom")
}
func main() {
go sayHello() // gorutina ishga tushiradi
time.Sleep(time.Second) // gorutina bajarilishini kutamiz
}
Shu tarzda, gorutinalar minimal xarajatlar bilan kodni parallel ravishda bajarishning samarali usulidir.