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.