Golang多线程垂直输出字符串
2023-09-27 14:26:55 时间
[本文出自天外归云的博客园]
三个字符串,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) }
你还有更好的办法吗?
相关文章
- 多线程系列 使用多线程的安全问题
- C++多线程编程(入门实例)
- 多线程
- python并发编程之多进程、多线程、异步和协程
- 《C++多线程编程实战》——2.9 在用户空间实现线程
- 《C++多线程编程实战》导读
- swift开发多线程篇 - NSThread 线程相关简单说明(一些使用和注意点)
- java多线程应用场景
- JAVA多线程实现的四种方式
- GCD多线程
- Phaser都不懂,还学什么多线程
- 字符串处理算法(五)多线程实现代码行数统计。[风林火山]
- Python游戏server开发日记(二)绕过GIL启动多线程Python环境
- 多线程编程(二)--进程&&线程
- C# 多线程七之Parallel
- 多线程下载的神器
- 多线程——Java中继承Thread类与实现Runnable接口的区别