首页 > 其他 > 详细

go 实现两个goroutine交替执行打印数字和字母

时间:2021-04-11 16:05:18      阅读:19      评论:0      收藏:0      [点我收藏+]
package main

import (
    "fmt"
    "sync"
)

var wg sync.WaitGroup

func letter(ch chan string)  {
    defer wg.Done()
    for i:=0; i<26; i++{
        ch <- fmt.Sprintf("%c", A+i)
    }
    close(ch)
}

func number(ch chan int)  {
    defer wg.Done()
    for i:=1; i<29; i++{
        ch <- i
    }
    close(ch)
}

func main() {
    leChar := make(chan string, 26)
    intChar := make(chan int, 28)
    wg.Add(3)
    go letter(leChar)
    go number(intChar)

    go func() {
        defer wg.Done()
        for i := range intChar{
            fmt.Printf("%d%d%s%s",i,<-intChar, <-leChar, <-leChar)
        }
    }()

    wg.Wait()
}

 

 

go 实现两个goroutine交替执行打印数字和字母

原文:https://www.cnblogs.com/Caoxt/p/14643606.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!