2019年8月2日
昨晚的笔试题
使用两个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
}
}
浙公网安备 33010602011771号