Hi 你好,我是k哥。大厂搬砖6年的后端程序员。 我们知道,Go语言为了方便使用者,提供了简单、安全的协程数据同步和通信机制,channel。那我们知道channel底层是如何实现的吗?今天k哥就来聊聊channel的底层实现原理。同时,为了验证我们是否掌握了channel的实现原理,本文也收集了channel的高频面试题,理解了原理,面试题自然不在话下。 1 原理 默认情况下,读写未就绪的channel(读没有数据的channel,或者写缓冲区已满的channel)时,协程会被阻塞。 但是当读写channel操作和select搭配使用时,即使channel未就绪,也可以执行其它分支,当前协程...