Sobes.tech
Middle+

Go kontekstida asinxronlik, parallel va raqobat nima?

sobes.tech AI

AIdan javob

Go kontekstida:

  • Asinxronlik — asosiy oqimni bloklamasdan operatsiyalarni bajarish, odatda gorutinlar va kanallar orqali. Bu mustaqil ravishda bajarilishi mumkin bo'lgan vazifalarni boshlash va ularning yakunlanishini kutmaslik imkonini beradi.

  • Parallellik — bir nechta vazifalarni protsessorning turli yadrolarida bir vaqtning o'zida bajarish. Go'da bu gorutinlar planlashtiruvchisi yordamida amalga oshiriladi, ularni tizim iplariga taqsimlaydi.

  • Raqobat — bir dastur bir vaqtning o'zida yoki ketma-ket bajarilishi mumkin bo'lgan bir nechta vazifalarni boshqarish qobiliyati, umumiy resurslarga to'g'ri kirishni ta'minlab.

Goroutine misoli:

func worker(id int) {
    fmt.Printf("Ishchi %d boshladi\n", id)
    // ish
}

func main() {
    for i := 1; i <= 5; i++ {
        go worker(i) // asinxron boshlash
    }
    time.Sleep(time.Second) // yakunlashni kutish
}