package main
import (
"fmt"
"sync"
)
func main() {
var wg sync.WaitGroup
wg.Add(2)
str := "hello,world!"
str1 := []byte(str)
sc := make(chan byte, len(str))
count := make(chan int)
for _, v := range str1 {
sc <- v
}
close(sc)
go func() {
defer wg.Done()
for {
ball , ok := <- count
if ok {
pri, ok1 := <- sc
if ok1 {
fmt.Printf("go 1 : %c\n", pri)
} else {
close(count)
return
}
count <- ball
} else {
return
}
}
}()
go func() {
defer wg.Done()
for {
ball , ok := <- count
if ok {
pri, ok1 := <- sc
if ok1 {
fmt.Printf("go 2 : %c\n", pri)
} else {
close(count)
return
}
} else {
return
}
count <- ball
}
}()
count <- -1
wg.Wait()
}
记录一次面试遇到的编程题,当时没有做了但是没有反馈,不知道自己当时是否写对了。
不过题目还是记得的,于是回家之后又动手尝试了一下。