相关信息
golang实现交替打印数字字母
该题的关键在意通过channel进行控制
go
package main
import (
"fmt"
)
func main() {
numCh := make(chan struct{})
letterCh := make(chan struct{})
go func() {
for i := 1; i <= 20; i++ {
<-numCh
fmt.Print(i)
letterCh <- struct{}{}
}
}()
go func() {
for i := 'A'; i < 'A'+20; i++ {
<-letterCh
fmt.Print(string(i))
numCh <- struct{}{}
}
}()
// 启动打印,先让数字 goroutine 打印
numCh <- struct{}{}
// 等待打印完成,防止主线程提前退出
// 这里简单用一个阻塞读,直到两个协程打印完成
<-numCh
}
本文作者:曹子昂
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!