Sobes.tech
Middle+

რა არის ასინქრონულობა, პარალელობა და კონკურენცია Go-ს კონტექსტში?

sobes.tech AI

პასუხი AI-სგან

Go კონტექსტში:

  • ასინქრონულობა — ოპერაციების შესრულება ისე, რომ არ ბლოკავდეს ძირითადი ნაკადს, ჩვეულებრივ გორუტინებისა და არხების საშუალებით. ეს საშუალებას აძლევს დაიწყოს დამოუკიდებელი დავალებები და არ დაელოდოს მათ დასრულებას.

  • პარალელობა — რამდენიმე დავალების ერთდროული შესრულება სხვადასხვა პროცესორის ბირთვზე. Go-ში ეს მიღწეულია გორუტინების გრაფიკით, რომელიც მათ სისტემის ნაკადებზე ნაწილდება.

  • კონკურენცია — პროგრამის უნარი მართოს რამდენიმე დავალება, რომლებიც შეიძლება შესრულდეს ერთდროულად ან რიგრიგობით, უზრუნველყოფს სწორი წვდომა საერთო რესურსებზე.

გორუტინის მაგალითი:

func worker(id int) {
    fmt.Printf("მუშაკი %d დაიწყო\n", id)
    // სამუშაო
}

func main() {
    for i := 1; i <= 5; i++ {
        go worker(i) // ასინქრონული დაწყება
    }
    time.Sleep(time.Second) // დასრულების მოლოდინი
}