Sobes.tech
Junior — Middle

Κατά την υλοποίηση του προγράμματός σας, χρησιμοποιήσατε τον μηχανισμό συγχρονισμού waitgroup;

sobes.tech AI

Απάντηση από AI

Ναι, στη γλώσσα Go, ο μηχανισμός sync.WaitGroup χρησιμοποιείται συχνά για τον συγχρονισμό πολλαπλών goroutines. Επιτρέπει στη κύρια goroutine να περιμένει την ολοκλήρωση ενός συνόλου παράλληλων εργασιών.

Παράδειγμα χρήσης:

var wg sync.WaitGroup

wg.Add(3) // περιμένουμε 3 goroutines

for i := 0; i < 3; i++ {
    go func(id int) {
        defer wg.Done() // σήμα για το τέλος
        fmt.Printf("Goroutine %d σε λειτουργία\n", id)
        // κάποια εργασία
    }(i)
}

wg.Wait() // περιμένουμε μέχρι να κληθούν όλα τα Done
fmt.Println("Όλες οι goroutines έχουν ολοκληρωθεί")

Έτσι, το WaitGroup βοηθά στη σωστή διαχείριση του παραλληλισμού και διασφαλίζει ότι το πρόγραμμα δεν θα τερματίσει νωρίτερα.