Sobes.tech
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)