[本文出自天外归云的博客园]
三个字符串,abc,def,ghi,请用多线程顺序输出:adg,beh,cfi
抛砖引玉,我的代码如下:
package main
import "fmt"
import "sync"
func printStr(a, b, c string) {
strLen := len(a)
var wg sync.WaitGroup
wg.Add(strLen)
msgs := make(chan string, strLen)
go func() {
for i := 0; i < strLen; i++ {
defer wg.Done()
fmt.Print(<- msgs)
}
} ()
for i := 0; i < strLen; i++ {
msgs <- fmt.Sprintf("%+v%+v%+v\n", string(a[i]), string(b[i]), string(c[i]))
}
wg.Wait()
}
func main() {
a := "abc"
b := "def"
c := "ghi"
printStr(a, b, c)
}
你还有更好的办法吗?
本文来自博客园,作者:天外归云,转载请注明原文链接:https://www.cnblogs.com/LanTianYou/p/16426440.html
浙公网安备 33010602011771号