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 βοηθά στη σωστή διαχείριση του παραλληλισμού και διασφαλίζει ότι το πρόγραμμα δεν θα τερματίσει νωρίτερα.