面试真题

Go · 中等 · 百度

channel的用途和使用上要注意的4个点以及底层结构

中等 Go 🎤 百度
参考答案
结论:channel用于goroutine通信与同步;使用注意4点:1.向已关闭channel写会panic;2.从关闭channel读立即返回零值且ok=false;3.nil channel读写永久阻塞,常用于select禁用分支;4.必须保证接收方存在或超时,否则发送方goroutine泄漏。底层结构为hchan:含缓冲数组buf、读写索引、等待队列recvq/sendq及互斥锁,无缓冲channel的buf为nil,直接进行交接。
题目整理自公开面经,答案由校招宝自研生成,仅供参考