Channel
//channel默认为双向通道,也可为单向通道
//只写单向通道 只接受通道
var intchan chan<- int
intchan <-1
//只读单向通道 只发送通道
var intchan <-chan int
v := <-intchan
//使用close()关闭通道
close(intchan)
<-ch //表示从ch通道中读取数据,这个表达式会一直堵塞,知道有数据可以读
//堵塞示例:
func main(){
var c = make(chan int)
go func(){
fmt.Println("Helloween")
<-c
}()
c<-1
}
//主线程中会deadlock
//实现了协程同步问题,利用了不同协程使用channel会阻塞的原理
//上面代码同下一样
func main(){
var c = make(chan int)
go func(){
fmt.Println("Helloween")
c<-1
}()
<-c
}
-----------------------好记性不如烂笔头-----------------------------