![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
信道
从运维到开发
stay foolish
展开
-
go 处理一主多子协程的sync.WaitGroup
package mainimport ( "fmt" "sync")func worker(x int, wg *sync.WaitGroup) { //用于函数返回之前,调用的函数,参考博客https://blog.csdn.net/u011525168/article/details/88401991 //用于完成一个子协程减1的计数器 defer wg.Done() for i := 0; i < 5; i++ { fmt.Println(i) }}.原创 2021-05-26 16:14:16 · 107 阅读 · 0 评论 -
go 模拟信道锁
package mainimport "fmt"func main() { //没有传入长度,默认的容量为0 done := make(chan bool) go func() { for i := 0; i < 5; i++ { //只会输入0,1,因为信道done的cap为0,第一次输入后就堵塞了,因为只会打印2次,第二次无法输入 fmt.Println(i) done <- true } }() <-done}执行结果:.原创 2021-05-26 14:28:35 · 145 阅读 · 0 评论