Junior — Middle
Ποιοι τύποι υλοποίησης παράλληλων εργασιών γνωρίζετε;
sobes.tech AI
Απάντηση από AI
Στο Go, οι παράλληλες εργασίες μπορούν να υλοποιηθούν με διάφορους τρόπους:
-
Goroutines — ελαφριά νήματα που ξεκινούν με τη λέξη-κλειδί
go. Επιτρέπουν την παράλληλη εκτέλεση συναρτήσεων. -
Κάναλες — χρησιμοποιούνται για επικοινωνία και συγχρονισμό μεταξύ goroutines, επιτρέποντας ασφαλή μεταφορά δεδομένων.
-
Pools εργαζομένων — μια ομάδα goroutines που παίρνουν εργασίες από μια ουρά και τις επεξεργάζονται, βοηθώντας στον έλεγχο του αριθμού των ταυτόχρονων goroutines.
-
sync.WaitGroup — για να περιμένει κανείς να ολοκληρωθεί μια ομάδα goroutines.
Παράδειγμα εκκίνησης goroutine και αποστολής δεδομένων μέσω καναλιού:
ch := make(chan int)
// Εκκίνηση goroutine
go func() {
ch <- 42 // αποστολή τιμής στο κανάλι
}()
// Λήψη τιμής από το κανάλι
val := <-ch
fmt.Println(val)