package main
import (
"fmt"
"time"
)
//var wg sync.WaitGroup
func readData(id int,jobs<-chan int,results chan <-int){
//defer wg.Done()
for job := range jobs{
fmt.Printf("worker-[%d] start to job job-[%d]\n",id,job)
results <-job
time.Sleep(time.Second)
}
}
func main(){
jobs :=make(chan int,100)
results :=make(chan int,100)
//wg.Add(3)
//开启3个goroutine
for id:=1;id<=3;id++{
go readData(id,jobs,results)
}
//创建5个任务
for job :=1;job<=5;job++{
jobs <- job
}
close(jobs)
//输出任务结果
for i:=1;i<=5;i++{
data :=<-results
fmt.Printf("data::::%v\n",data)
}
//wg.Wait()
fmt.Println("progress over")
}
go-线程池
最新推荐文章于 2024-04-30 16:29:26 发布