分析发送chanel的过程
1、非阻塞模式
if !block { unlock(&c.lock) return false }
非阻塞模式下,在 c.qcount >= c.dataqsiz 时候,也就是在channel满的时候直接返回
非阻塞模式实现是用 select
var c chan
select {
case ->c:
fmt.Printf("Hello world")
default:
fmt.Printf("Hello default")
}
2、阻塞模式下
阻塞模式下,在 c.qcount >= c.dataqsiz 时候,也就是在channel满的时候,park()函数,使p与g detached