利用channel交替打印两个数组
【利用channel交替打印两个数组】前两天出去面试,面试官让手写一下两个数组交替打印。吭哧吭哧半天也没写出来..特在此做一个笔记
package mainimport "fmt"func main() { ch := make(chan int) str1 := [5]int{1, 3, 5, 7, 9}
str2 := [5]int{0, 2, 4, 6, 8} go func() {
for i, v := range str1 {
<-ch
fmt.Print(v)
ch <- i
}
}() for i, v := range str2 {
ch <- i
fmt.Print(v)
<-ch
}}
打印结果:
0123456789
或者
1032547698
总结:利用协程通道来相互阻塞来达到交替打印的结果。
推荐阅读
- Spring|Spring Boot 自动配置的原理、核心注解以及利用自动配置实现了自定义 Starter 组件
- 【万伽复利】什么是复利(如何利用复利赚钱?)
- 苹果手机如何利用库乐队自制铃声
- “没有利用价值的人是很受冷遇的。”
- 可悲的好人
- 利用好你的暗时间,让成长无处不在
- 如何利用漏斗模型增加转化率减少流失率()
- 2018-12-05|2018-12-05 打卡第二十二天 想要利用业余时间培养爱好就得先做好时间管理
- 你是在利用时间还是在滥用时间【8】
- 如何优雅的利用工具—起床篇