Sobes.tech
Middle+

Ce sunt muncitorii?

sobes.tech AI

Răspuns de la AI

În contextul Golang, workerii sunt goroutines sau fire de execuție separate care procesează sarcini în paralel. De obicei, workerii sunt utilizați în pattern-ul "worker pool" — un pool de workerii, unde mai multe goroutines preiau sarcini dintr-o coadă comună și le execută, ceea ce permite utilizarea eficientă a resurselor și controlul paralelismului.

Exemplu de un worker simplu în Go:

func worker(id int, jobs <-chan int, results chan<- int) {
    for j := range jobs {
        fmt.Printf("Worker %d procesează sarcina %d\n", id, j)
        results <- j * 2 // exemplu de procesare
    }
}

func main() {
    jobs := make(chan int, 5)
    results := make(chan int, 5)

    for w := 1; w <= 3; w++ {
        go worker(w, jobs, results)
    }

    for j := 1; j <= 5; j++ {
        jobs <- j
    }
    close(jobs)

    for a := 1; a <= 5; a++ {
        <-results
    }
}

Astfel, workerii permit paralelizarea procesării sarcinilor, creșterea productivității și gestionarea încărcăturii.