package goroutine import ( "fmt" "goLearn/model" "sync" ) func NewConsumer(ch chan model.Task, wg *sync.WaitGroup, done chan struct{}, num int, data *model.Data, rwmutex *sync.RWMutex) { defer wg.Done() for { select { case <-ch: rwmutex.RLock() fmt.Printf("消费者%d号处理消息,统计消息总数为:%d\n", num+1, data.Count) fmt.Printf("消费者%d号:当前记录详情如下:\n", num+1) for key, value := range data.Record { fmt.Printf(" 键:%d,值:%d\n", key, value) } rwmutex.RUnlock() case <-done: fmt.Printf("消费者%d号退出接收\n", num+1) return } } }