这是一个例子
package main
import (
"fmt"
"strconv"
)
type Job struct {
Name string
Time int
}
type State struct {
State string
}
//打印出工作内容
func Work(i int,jobs <-chan *Job,States chan <-*State){
for j:=range jobs{
fmt.Printf("Worker Name :=%s,Worker Time:=%d\n",j.Name,j.Time)
s := new(State)
s.State = "job :"+strconv.Itoa(i)+" 完成工作"
States <- s
}
}
func main(){
jobs := make(chan *Job)
States := make(chan *State)
//启动10个协程
for i :=0;i<10;i++{
go Work(i,jobs,States)
}
//添加工作
for j:=0;j<10;j++{
JobsNew := new(Job)
JobsNew.Name = "工作"+strconv.Itoa(j)
JobsNew.Time = j
jobs<-JobsNew
}
close(jobs)
// 读取工作结果
for w :=0;w<10;w++{
res := <-States
fmt.Println(res)
}
}