Junior — Middle
Go proqramlaşdırma dilində rəqabət anlayışını və onun paralel tətbiqlərin inkişafında rolunu izah edin
sobes.tech Süni İntellekt
AI-dan cavab
Go dilində, yarışma (concurrency) — bu proqramın eyni vaxtda bir neçə vəzifəni yerinə yetirmək qabiliyyətidir və bu, prosessor resurslarından səmərəli istifadə edir. Go dilində bu, go açar sözü ilə başlayan yüngül axınlar — goroutinlər vasitəsilə həyata keçirilir.
Yarışma, kodun müxtəlif hissələrinin eyni vaxtda işlədiyi paralel tətbiqlər yazmağa imkan verir, bu da proqramların performansını və cavabvermə qabiliyyətini artırır.
Goroutinlər arasında sinxronizasiya və məlumat mübadiləsi üçün kanallar (channels) istifadə olunur; onlar açıq bloklamalar olmadan təhlükəsiz əlaqə təmin edir.
Nümunə:
package main
import (
"fmt"
"time"
)
func worker(id int) {
fmt.Printf("İşçi %d başlayır\n", id)
time.Sleep(time.Second)
fmt.Printf("İşçi %d tamamlandı\n", id)
}
func main() {
for i := 1; i <= 3; i++ {
go worker(i) // goroutin başlat
}
time.Sleep(2 * time.Second) // goroutinlərin tamamlanmasını gözləyir
}
Bu nümunədə, üç goroutin eyni vaxtda işləyir və Go dilində yarışmanı nümayiş etdirir.