go 循环打印

循环打印A和B各5次,可以使用两个chan控制顺序,chan或者WaitGroup控制结束

 

package main

import (
    "fmt"
    "sync"
)

var one= make(chan int,1)
var two = make(chan int,1)
var group sync.WaitGroup
//可以使用chan代替group
var end = make(chan int,1)

func PrintA()  {
    //defer group.Done()
    //两个chan控制打印
    for i:=0;i<5;i++{
        <-one
        fmt.Println("A")
        two<-1
    }
}

func PrIntB()  {
    //defer group.Done()
    for i:=0;i<5;i++{
        <-two
        fmt.Println("B")
        one<-1
    }
    end<-1
}

func main()  {
    //启动信号
    one<-1
    //group.Add(2)
    go PrintA()
    go PrIntB()
    //group.Wait()
    <-end
}

 

posted @ 2021-01-25 18:23  海拉尔  阅读(336)  评论(0编辑  收藏  举报