Middle — Senior
Ποιος είναι ο ρόλος της μεθόδου Wg.Wait στον συγχρονισμό νημάτων;
sobes.tech AI
Απάντηση από AI
Η μέθοδος Wg.Wait() από το πακέτο sync στη Go χρησιμοποιείται για τον συγχρονισμό πολλαπρών goroutines. Μπλοκάρει την εκτέλεση της καλούσας goroutine μέχρι ο μετρητής WaitGroup να φτάσει στο μηδέν, δηλαδή μέχρι όλες οι goroutines που έχουν προστεθεί μέσω του Add() να καλέσουν το Done().
Παράδειγμα:
var wg sync.WaitGroup
wg.Add(2)
go func() {
defer wg.Done()
// εργασία της πρώτης goroutine
}()
go func() {
defer wg.Done()
// εργασία της δεύτερης goroutine
}()
wg.Wait() // Περιμένουμε να ολοκληρωθούν και οι δύο goroutines
Έτσι, το Wg.Wait() διασφαλίζει ότι το πρόγραμμα δεν θα συνεχίσει μέχρι όλες οι παράλληλες εργασίες να έχουν ολοκληρωθεί.