ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Golang多线程垂直输出字符串

2022-06-30 12:32:23  阅读:181  来源: 互联网

标签:wg fmt sync Golang 字符串 import 多线程 strLen


[本文出自天外归云的博客园]

三个字符串,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)
}

你还有更好的办法吗?

标签:wg,fmt,sync,Golang,字符串,import,多线程,strLen
来源: https://www.cnblogs.com/LanTianYou/p/16426440.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有