golang chan总结

本文详细探讨了Go语言中chan的核心概念,包括无缓冲chan的同步特性,进和出如何阻塞;有缓冲chan作为FIFO队列的工作原理,以及在满载和空载情况下的行为;还重点介绍了select关键字的使用,解释了其遍历case的机制,以及在多个case阻塞和存在default时的行为。了解这些对于掌握Go并发编程至关重要。
摘要由CSDN通过智能技术生成

goroutine和chan配合是golang的核心技术, 必须深入研究一下使用方法.

无缓冲chan

进和出都会阻塞.


例1:

func main() {
    ch := make(chan error)
    fmt.Println("main1")
    go func() {
        fmt.Println("go1")
        ch <- nil //阻塞
        fmt.Println("go2") //永远不会执行
    }()
    fmt.Println("main2")
    time.Sleep(1 * time.Second)
    fmt.Println("main等待1秒")
    fmt.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值