channel的关闭和广播机制测试

package csp

import (
    "fmt"
    "sync"
    "testing"
)

/* func dataProducer(ch chan int, wg *sync.WaitGroup) {
    go func() {
        for i := 0; i < 10; i++ {
            ch <- i
        }
        wg.Done()
    }()
}

func dataReceiver(ch chan int, wg *sync.WaitGroup) {
    go func() {
        for i := 0; i < 10; i++ {
            data := <-ch
            fmt.Println(data)
        }
        wg.Done()
    }()

}

func TestChannelClose(t *testing.T) {
    ch := make(chan int)
    var wg sync.WaitGroup
    wg.Add(1)
    dataProducer(ch, &wg)
    wg.Add(1)
    dataReceiver(ch, &wg)
    wg.Wait()
} */

func dataProducer(ch chan int, wg *sync.WaitGroup) {
    go func() {
        for i := 0; i < 10; i++ {
            ch <- i
        }
        close(ch) //没有加closepanic了
        wg.Done()
    }()
}

func dataReceiver(ch chan int, wg *sync.WaitGroup) {
    go func() {
        for {
            if data, ok := <-ch; ok {
                fmt.Println(data)

            } else {
                break
            }
        }
        wg.Done()
    }()

}

func TestChannelClose(t *testing.T) {
    ch := make(chan int)
    var wg sync.WaitGroup
    wg.Add(1)
    dataProducer(ch, &wg)
    wg.Add(1)
    dataReceiver(ch, &wg)
    // wg.Add(1)
    // dataReceiver(ch, &wg)
    // wg.Add(1)
    // dataReceiver(ch, &wg)
    wg.Wait()
}

/*>go  test
0
1
2
3
4
5
6
7
8
9
PASS
ok        0.249s

> */

/*
func TestChannelClose(t *testing.T) {
    ch := make(chan int)
    var wg sync.WaitGroup
    wg.Add(1)
    dataProducer(ch, &wg)
    wg.Add(1)
    dataReceiver(ch, &wg)
    wg.Add(1)
    dataReceiver(ch, &wg)
    wg.Add(1)
    dataReceiver(ch, &wg)
    wg.Wait()
}
>go  test
0
1
4
5
6
7
8
9
3
2
PASS
ok        0.360s

> */

网站题目:channel的关闭和广播机制测试
标题链接:http://bzwzjz.com/article/iisphd.html

其他资讯

Copyright © 2007-2020 广东宝晨空调科技有限公司 All Rights Reserved 粤ICP备2022107769号
友情链接: 重庆网站建设 四川成都网站建设 手机网站建设 重庆企业网站建设 成都商城网站建设 成都网站制作 成都网站设计 成都网站制作 成都网站设计公司 成都网站制作 网站制作 高端网站设计推广 外贸营销网站建设 成都网站建设公司 网站制作公司 成都网站建设 响应式网站设计 成都模版网站建设 网站设计 手机网站建设 商城网站建设 重庆网站建设