TypingKit
← Code

Go: Fan work out to a pool of goroutines

Written for TypingKit · ~2 min

0 wpm 100% accuracy 100% real accuracy
package main↵
↵
import (↵
"fmt"↵
"sync"↵
)↵
↵
func main() {↵
jobs := make(chan int)↵
var wg sync.WaitGroup↵
for w := 1; w <= 3; w++ {↵
wg.Add(1)↵
go func(id int) {↵
defer wg.Done()↵
for n := range jobs {↵
fmt.Printf("worker %d: %d squared is %d\n", id, n, n*n)↵
}↵
}(w)↵
}↵
for n := 1; n <= 9; n++ {↵
jobs <- n↵
}↵
close(jobs)↵
wg.Wait()↵
}