Junior — Middle
Go tilida parallel hisoblashlar qanday amalga oshiriladi?
sobes.tech AI
AIdan javob
Go tilida parallel hisoblashlar goroutine (goroutines) va kanallar (channels) yordamida amalga oshiriladi.
Goroutine'lar — bu yengil oqimlar bo'lib, ular go kalit so'zi yordamida boshlanadi. Ular funksiyalarni asinxron va parallel ravishda bajarishga imkon beradi.
Ikki funksiyani parallel ishga tushirish misoli:
func vazifa(id int) {
fmt.Printf("Vazifa %d boshlandi\n", id)
// ishni simulyatsiya qilish
time.Sleep(time.Second)
fmt.Printf("Vazifa %d tugadi\n", id)
}
func main() {
go vazifa(1)
go vazifa(2)
time.Sleep(2 * time.Second) // goroutine'lar tugashiga imkon berish uchun
}
Kanallar goroutine'lar o'rtasida sinxronizatsiya qilish va ma'lumotlarni uzatish uchun ishlatiladi, bu esa blokirovkalarisiz xavfsiz ma'lumot almashishni ta'minlaydi.
Shu tarzda, Go parallel hisoblashlarni tashkil qilish uchun oddiy va samarali vositalarni taqdim etadi.