Sobes.tech
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.