Go语言中channel的常见用法

channel基本用法

channel骚操作

校验channel是否关闭

1
2
3
if v, ok := <- ch; ok {
fmt.Println(v)
}

控制函数并发度

如下函数test在多个线程中运行,但同时并发只能有5个实例,如在redis 连接池的处理

1
2
3
4
5
6
7
8
9
10
ch := make(chan string, 5)

func test() {
ch <- "test start"
defer func() {
<-ch
}
// do something
...
}

!未完待续


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!