2025-12-08
golang
00

相关信息

golang实现交替打印数字字母

该题的关键在意通过channel进行控制

  • 声明一个数字ch,一个字母ch
  • 分别启动一个go 协程, 一直读取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 许可协议。转载请注明出处!