问题描述两个goroutine,一个goroutine中做键盘的输入,另一个goroutine做其它数据处理。运行后,如果我不输入数据,另一个goroutine也停止运行了。也没调度。我希望即使我不输入数据,也不要影响另一个goroutine。问题出现的环境背景及自己尝试过哪些方法相关代码//请把代码文本粘贴到下方(请勿用图片代替代码)packagemainimport("fmt""os""bufio""math/rand")funcmain(){msgChan:=make(chanstring)roundChan:=make(chanint)sleepChan:=make(chanbool)goinput(msgChan)goroundNum(roundChan)goScheduler(msgChan,roundChan)<-sleepChan}funcScheduler(msgChanchanstring,roundChanchanint){var(msgstringroundint)for{select{casemsg=<-msgChan:fmt.Println("msg:",msg)caseround=<-roundChan:fmt.Println(round)}}}funcroundNum(roundChanchanint){roundChan<-rand.Int()}funcinput(msgChanchanstring){var(msgstringerrerror)for{fmt.Println("请输入要回复的消息:")ifmsg,err=bufio.NewReader(os.Stdin).ReadString('\n');err!=nil{return}msgChan<-msg}}你期待的结果是什么?实际看到的错误信息又是什么?期待:可以随时输入键盘数据,如果我输入键盘数据两个goroutine都正常运行。如果我不输入键盘数据,也不要影响另一个goroutine的执行。
郎朗坤
相关分类