Junior — Middle
Go dilində tapşırıqların paralel və ardıcıl işlənməsi necə həyata keçirilir?
sobes.tech Süni İntellekt
AI-dan cavab
Go dilində tapşırıqların paralel işlənməsi goroutinlər vasitəsilə həyata keçirilir — bunlar yüngül axınlar olub, go açar sözü ilə başladılır. Goroutin funksiyasını asinxron şəkildə icra etmək mümkündür və o, digər goroutinlərlə paralel işləyəcək.
Silsilə işləmə — bu, go istifadə etmədən funksiyaları çağırmaqdır, və tapşırıqlar bir-bir yerinə yetirilir.
Paralel işləmə nümunəsi:
package main
import (
"fmt"
"time"
)
func tapşırıq(id int) {
fmt.Printf("Tapşırıq %d başladı\n", id)
time.Sleep(time.Second)
fmt.Printf("Tapşırıq %d tamamlandı\n", id)
}
func main() {
for i := 1; i <= 3; i++ {
go tapşırıq(i) // goroutin başlat
}
time.Sleep(2 * time.Second) // goroutinlərin tamamlanmasını gözləyir
}
Bu nümunədə, üç tapşırıq paralel olaraq başlayır. Əgər go silinsə, tapşırıqlar ardıcıl yerinə yetiriləcək.
Goroutinləri sinxronlaşdırmaq və idarə etmək üçün tez-tez kanallar (channels) və sync.WaitGroup istifadə olunur.