问答详情
源自:5-5 Go语言-通道类型

go小白 问问大神 几个通道的问题

第一 如何判断 这个通道 是关闭 还是开启

第二 如何判断 这个通道是否满

第三 一个通道的长度 最好设置多少  有范围限制么?

第四 通道个数  我们一般为了应付并发 在程序里面 设置几个通道最好呢 ch1 ch2 ch3 ch4....肯定 有最优数量吧

提问者:慕姐4424294 2021-02-17 22:36

个回答

  • 风杀
    2021-07-12 23:23:46

    第一:make就是开启通道,close就是关闭通道。没有关闭通道就是可使用状态

    第二:

    ch2 := make(chan string, 2)

    if len(ch2) == 0{

        fmt.Println("通道为空!")

    } else if len(ch2) == cap(ch2) {

        fmt.Println("通道已满!")

    } else {

        fmt.Println("通道未满!")

    }

    第三:

    根据情况设置,channel是缓存buffer,可以用来限制goroutine并发数。也不是越小越好。根据机器性能,业务实际情况。

    第四:

    同三