请问go select,多个通道同时可读,你会怎么处理-笔试面试资料

这是qklbishe.com第18135 篇笔试面试资料
提供答案分析,通过本文《请问go select,多个通道同时可读,你会怎么处理-笔试面试资料》可以理解其中的代码原理,这是一篇很好的求职学习资料
本站提供程序员计算机面试经验学习,笔试经验,包括字节跳动/头条,腾讯,阿里,美团,滴滴出行,网易,百度,京东,小米,华为,微软等互联网大厂真题学习背诵。

答案:
请问go select,多个通道同时可读,你会怎么处理

请问go select,多个通道同时可读,你会怎么处理 区块链毕设学生605981707号
package main  import ( 	"fmt" 	"sync" 	"time" )  /* 请问go select,多个通道同时可读,你会怎么处理 Go语言通道的多路复用——同时处理接收和发送多个通道的数据 */ var wg sync.WaitGroup func WriteChannels(a,b chan<- int,num1,num2 int){ 	defer wg.Done() 	for{ 		select{ 			case a<-num1: 				fmt.Println("write num1") 			case b<-num2: 				fmt.Println("write num2") 			default: 				fmt.Println("no write channel") 		} 		time.Sleep(time.Second) 	} } func ReadChannels(a,b <-chan int)(num1,num2 int){ 	defer wg.Done() 	for{ 		select{ 			case num1=<-a: 				fmt.Println("read num1") 			case num2=<-b: 				fmt.Println("read num2") 			default: 				fmt.Println("no read channel") 		} 		time.Sleep(time.Second) 	} } func main(){ 	a :=make(chan int,1) 	b:=make(chan int,1) 	wg.Add(2) 	go WriteChannels(a,b,1,2) 	go ReadChannels(a,b) 	wg.Wait() 	//fmt.Println(num1,num2) } 如果不对,请多多指教

今天 09:35:39 回复(0)

文章部分来自互联网,侵权联系删除
www.qklbishe.com

区块链毕设网(www.qklbishe.com)全网最靠谱的原创区块链毕设代做网站
部分资料来自网络,侵权联系删除!
资源收费仅为搬运整理打赏费用,用户自愿支付 !
qklbishe.com区块链毕设代做网专注|以太坊fabric-计算机|java|毕业设计|代做平台 » 请问go select,多个通道同时可读,你会怎么处理-笔试面试资料

提供最优质的资源集合

立即查看 了解详情