package main
import "fmt"
func worker(id int, jobs chan int, results chan int) {
for j := range jobs {
fmt.Println("worker", id, "procesing job", j)
results <- j * 2
}
}
func main() {
job := make(chan int, 100)
result := make(chan int, 200)
for w := 1; w <=3; w++ {
go worker(w, job, result)
}
for j := 1; j <= 9; j++ {
job <- j
}
for a := 1; a <= 9; a++ {
fmt.Println(<-result)
}
}golang 线程池
最新推荐文章于 2025-10-24 10:00:42 发布
本文通过一个具体的Go语言程序示例介绍了如何使用goroutine和channel实现简单的任务分发与收集结果的功能。该程序创建了多个worker goroutine来处理任务,并将结果发送到一个channel中进行收集。
1864

被折叠的 条评论
为什么被折叠?



