Junior — Middle
Μπορείτε να εξηγήσετε τι είναι μια Wait Group και για ποιο λόγο χρησιμοποιείται στον προγραμματισμό;
sobes.tech AI
Απάντηση από AI
Το Wait Group στο Go είναι μια δομή από το πακέτο sync που χρησιμοποιείται για να περιμένει την ολοκλήρωση μιας ομάδας goroutines. Επιτρέπει στη βασική goroutine (ή σε άλλη) να μπλοκάρει μέχρι όλες οι ξεκινήσασες 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() // περιμένουμε να ολοκληρωθούν και οι δύο
Αυτό είναι χρήσιμο για συγχρονισμό παράλληλων εργασιών και αποτροπή πρόωρου τερματισμού του προγράμματος.