Sobes.tech
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.