Junior — Middle
Go tilida vazifalarni parallel va ketma-ket bajarish qanday amalga oshiriladi?
sobes.tech AI
AIdan javob
Go tilida vazifalarni parallel tarzda ishlash goroutinlar yordamida amalga oshiriladi — bu yengil oqimlar bo‘lib, go kalit so‘zi yordamida boshlanadi. Goroutinani asinxron ravishda bajarish uchun ishga tushirish mumkin va u boshqa goroutinlar bilan parallel ravishda bajariladi.
Ketma-ket ishlash — bu go ishlatilmasdan funksiyalarni chaqirish bo‘lib, vazifalar bir-biridan keyin bajariladi.
Parallel ishlash misoli:
package main
import (
"fmt"
"time"
)
func vazifa(id int) {
fmt.Printf("Vazifa %d boshlanmoqda\n", id)
time.Sleep(time.Second)
fmt.Printf("Vazifa %d tugadi\n", id)
}
func main() {
for i := 1; i <= 3; i++ {
go vazifa(i) // goroutinani ishga tushurish
}
time.Sleep(2 * time.Second) // goroutinalar tugashini kutish
}
Ushbu misolda, uchta vazifa parallel ravishda boshlanadi. Agar go olib tashlansa, vazifalar ketma-ket bajariladi.
Goroutinlarni sinxronlashtirish va boshqarish uchun ko‘pincha kanallar (channels) va sync.WaitGroup ishlatiladi.