昨晚的笔试题
使用两个goroutine交替打印序列,一个goroutinue打印数字,另一个goroutine打印字母,最终结果如下: 12AB34CD56EF78GH910IJ
分析:问题核心是如何使两个协程顺序循环调用 使用阻塞channel交互控制
连续打印两个字符则是干扰项
package main import ( "fmt" ) func main() { c := make(chan bool) go func() { for i := 1; i < 10; i += 2 { fmt.Print(i) fmt.Print(i + 1) c <- true <-c } }() for i := 'A'; i < 'J'; i += 2 { <-c fmt.Printf("%c", i) fmt.Printf("%c", i+1) c <- true } }