go语言的select 与chan
chan是golang非常重要的一个概念,用于在不同的goroutine之间通信或共享数据,是go推荐的共享数据的方式。 chan有默认的deadlock检测机制,例如这段代码 http://play.golang.org/p/_0UWFWiGOr 运行的时候会提示: fatal error: all goroutines are asleep – deadlock! chan可以与select相结合,当chan与select结合的时候,有一个很有意思的现象,就是chan会变成非阻塞的 更有趣的是time.Timer,chan与select相结合的例子,每次select的chan case发生时,都会重置timer。一个极端的例子,select中,只有timer和default时,这个程序将...阅读全文