Sobes.tech
Middle

Qanday qilib raqobat va parallelizm farq qiladi?

sobes.tech AI

AIdan javob

Raqobatlilik — bu tizimning bir vaqtning o'zida bajarilishi mumkin bo'lgan bir nechta vazifalarni boshqarish qobiliyatidir, ular orasida o'tish bilan. Parallelizm — bu bu vazifalarning turli protsessor yadrolarida bir vaqtning o'zida bajarilishi.

Oddiyroq qilib aytganda, raqobatlilik — bu ishni tashkil qilish haqida, shunda bir nechta vazifa rivojlanishi mumkin, va parallelizm — bu bu vazifalarning bir vaqtning o'zida bajarilishi.

Go tilida raqobatlilik goroutinlar va kanallar yordamida erishiladi, va parallelizm — bu bu goroutinlar haqiqatan ham turli yadroda bir vaqtning o'zida bajarilganda yuzaga keladi.

Go tilida raqobatlilik misoli:

package main
import (
    "fmt"
    "time"
)
func task(name string) {
    for i := 0; i < 3; i++ {
        fmt.Println(name, "qadam", i)
        time.Sleep(100 * time.Millisecond)
    }
}
func main() {
    go task("A")
    go task("B")
    time.Sleep(500 * time.Millisecond)
}

Bu yerda "A" va "B" vazifalar raqobat bilan bajariladi, ular o'rtasida o'tish bilan, va agar ko'p yadroli protsessorda ishga tushirilsa, ular parallel ravishda bajarilishi mumkin.