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