worker pool

This commit is contained in:
Mark McGranaghan 2012-09-23 12:20:42 -04:00
parent 7945544a0a
commit d07fbefb9b
3 changed files with 31 additions and 29 deletions

View File

@ -1,27 +0,0 @@
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")
}

View File

@ -0,0 +1,31 @@
// ## Worker Pool
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

View File

@ -1,2 +0,0 @@
hello
filter