gobyexample/096-worker-pool.go
2012-09-20 22:09:22 -07:00

28 lines
394 B
Go

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")
}