go练习:交叉输出数字和字母
问题:请使用两个线程,一个输出字母,一个输出数字,交替输出1A2B3C....26Z
java的实现
我们来练习使用go实现
package main import ( "fmt" ) func main() { var h = 65 var c, d, e = make(chan int), make(chan int), make(chan int) go func() { for i := 0; i < 26; i++ { <-c fmt.Print(i+1, ">") d <- 1 } }() go func() { for i := h; i < h+26; i++ { <-d fmt.Printf("%c|", i) if i < h+26-1 { c <- 1 } } e <- 1 }() c <- 1 <-e }
可以看到,go语言对于这种场景,实现起来更加自然,channel让线程(这里是协程)间传递变量更容易
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步