lean into examples
This commit is contained in:
29
examples/worker-pools/worker-pools.go
Normal file
29
examples/worker-pools/worker-pools.go
Normal file
@@ -0,0 +1,29 @@
|
||||
package main
|
||||
|
||||
import "time"
|
||||
|
||||
func main() {
|
||||
jobs := make(chan int, 100)
|
||||
acks := make(chan bool, 100)
|
||||
|
||||
for w := 0; w < 10; w++ {
|
||||
go func() {
|
||||
for j := range jobs {
|
||||
println("worker", w, "processing job", j)
|
||||
time.Sleep(time.Millisecond * 150)
|
||||
acks <- true
|
||||
}
|
||||
}()
|
||||
}
|
||||
|
||||
for j := 0; j < 100; j++ {
|
||||
jobs <- j
|
||||
}
|
||||
|
||||
for a := 0; a < 100; a++ {
|
||||
<-acks
|
||||
}
|
||||
println("all done")
|
||||
}
|
||||
|
||||
// todo: broken
|
||||
Reference in New Issue
Block a user