Junior — Middle
გო პროგრამირების ენაში კონკურენციის კონცეფცია და მისი როლი პარალელური პროგრამების განვითარებაში
sobes.tech AI
პასუხი AI-სგან
Go ბილინგში, კონკურენცია (concurrency) არის პროგრამის უნარი ერთდროულად რამდენიმე დავალების შესრულების, რაც ეფექტურად იყენებს პროცესორის რესურსებს. ამ ენაში ამისთვის გამოიყენება გორუტინები, რომლებიც მსუბუქი თხელი ნაკადებია, რომლებიც იწყება საკვანძო სიტყვა go-ს გამოყენებით.
კონკურენცია საშუალებას აძლევს დაწეროთ პარალელური პროგრამები, სადაც კოდის სხვადასხვა ნაწილები ერთდროულად მუშაობს, რაც ზრდის პროგრამების შესრულების სიჩქარეს და რეაგირების უნარს.
გორუტინებს შორის სინქრონიზაციისა და მონაცემთა გაცვლისთვის გამოიყენება არხები (channels), რომლებიც უზრუნველყოფენ უსაფრთხო კომუნიკაციას აშკარა ბლოკირების გარეშე.
მაგალითი:
package main
import (
"fmt"
"time"
)
func worker(id int) {
fmt.Printf("მუშაკი %d იწყებს\n", id)
time.Sleep(time.Second)
fmt.Printf("მუშაკი %d დასრულდა\n", id)
}
func main() {
for i := 1; i <= 3; i++ {
go worker(i) // გორუტინის დაწყება
}
time.Sleep(2 * time.Second) // გორუტინების დასრულების მოლოდინი
}
ამ მაგალითში სამი გორუტინი ერთდროულად მუშაობს, რაც აჩვენებს კონკურენციას Go-ში.