Sobes.tech
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() διασφαλίζει ότι το πρόγραμμα δεν θα συνεχίσει μέχρι όλες οι παράλληλες εργασίες να έχουν ολοκληρωθεί.