2.Golang的goroutine
2.1 启动goroutine
Golang中启动一个goroutine没有C#的线程那么麻烦,只需要在调用方法的前面加上关键字go.
func main(){...(chan int, 1)
for i := 0; i < 10; i++ {
select {
case x := <-ch:
fmt.Printf("第%v次,x := <-ch,从通道中读取值...case ch <- i:
fmt.Printf("第%v次,执行ch<-i", i+1)
fmt.Println()
}
}
}
第1次,执行ch<-i
第2次,x := <-ch,从通道中读取值...0
第3次,执行ch<-i
第4次,x := <-ch,从通道中读取值2
第5次,执行ch<-i
第6次,x := <-ch,从通道中读取值4
第7次,执行ch<-i
第8次,x := <-ch,从通道中读取值...6
第9次,执行ch<-i
第10次,x := <-ch,从通道中读取值8
Select多路复用的规则:
可处理一个或多个channel的发送/接收操作。