请问楼主投的是提前批还是正式批呀? 另外两个协程交替打印,这个代码为什么会有问题呢 package main import ( "fmt" ) func main() { msg := make(chan int) go func() { for i := 0; i <= 100; i += 2 { <-msg fmt.Println("goroutine0", i) } }() go func() { for i := 1; i <= 100; i += 2 { msg <- 0 fmt.Println("goroutine1", i) } }() select {} }
点赞 1

相关推荐

一、项目相关1.&nbsp;项目难点:&nbsp;&nbsp;◦&nbsp;项目中最具挑战性的部分是什么?如何解决的?&nbsp;&nbsp;◦&nbsp;面试官持续深入追问项目细节(“拷打项目”)。2.&nbsp;库存服务实现:&nbsp;&nbsp;◦&nbsp;如何设计并实现库存服务?整体流程是什么?&nbsp;&nbsp;◦&nbsp;要求画出流程图。&nbsp;&nbsp;◦&nbsp;是否使用加锁机制?如何保证库存一致性?&nbsp;&nbsp;◦&nbsp;如果&nbsp;Redis&nbsp;挂了,如何应对?&nbsp;&nbsp;◦&nbsp;熔断恢复后,如何保证库存数据的一致性?二、技术基础1.&nbsp;Golang&nbsp;相关问题:&nbsp;&nbsp;◦&nbsp;Golang&nbsp;的&nbsp;map&nbsp;如何保证并发安全?&nbsp;&nbsp;◦&nbsp;map&nbsp;的底层实现原理是什么?&nbsp;&nbsp;◦&nbsp;解释&nbsp;Golang&nbsp;的&nbsp;GMP&nbsp;模型,要求画出&nbsp;GMP&nbsp;关联图。&nbsp;&nbsp;◦&nbsp;channel&nbsp;如何传递数据?&nbsp;&nbsp;&nbsp;&nbsp;▪&nbsp;手撕代码题:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;▪&nbsp;线程&nbsp;A&nbsp;通过&nbsp;channel&nbsp;传递数据给线程&nbsp;B,B&nbsp;计算后返回结果。三、编程手撕1.&nbsp;Channel&nbsp;应用:&nbsp;&nbsp;◦&nbsp;实现&nbsp;A&nbsp;线程通过&nbsp;channel&nbsp;发送数据给&nbsp;B&nbsp;线程,B&nbsp;计算后返回结果。四、其他问题1.&nbsp;个人情况:&nbsp;&nbsp;◦&nbsp;是否接受调剂到武汉?&nbsp;&nbsp;◦&nbsp;项目是自学的吗?是否参加过培训班?&nbsp;&nbsp;◦&nbsp;认为自己写代码最多的语言是什么?大约多少行代码量?2.&nbsp;闲聊环节:&nbsp;&nbsp;◦&nbsp;非技术性交流,涉及个人经历、职业规划等。面试时长•&nbsp;总时长约&nbsp;1&nbsp;小时&nbsp;10&nbsp;分钟(19:10&nbsp;-&nbsp;20:20)。总结:map这块答得非常差,压根没打出来。拷打项目较多,面试官人很好。
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务