Middle+
Wat zijn de arbeiders?
sobes.tech AI
Antwoord van AI
In de context van Golang zijn workers goroutines of aparte uitvoeringsstromen die taken parallel verwerken. Gewoonlijk worden workers gebruikt in het patroon van "worker pool" — een pool van workers waarbij meerdere goroutines taken uit een gedeelde wachtrij halen en uitvoeren, wat efficiënt gebruik van bronnen mogelijk maakt en parallelisme controleert.
Voorbeeld van een eenvoudige worker in Go:
func worker(id int, jobs <-chan int, results chan<- int) {
for j := range jobs {
fmt.Printf("Worker %d verwerkt taak %d\n", id, j)
results <- j * 2 // voorbeeld van verwerking
}
}
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
}
}
Op deze manier maken workers het mogelijk om taken parallel te verwerken, de productiviteit te verhogen en de belasting te beheren.