golang的并发

时间:2022-01-09 14:59:01

Golang的并发涉及二个概念:

goroutine

channel

goroutine由关键字go创建.

channel由关键字chan定义

channel的理解稍难点, 最简单地, 你把它当成Unix中的双向通道Pipe.

1. channel的定义

2. select阻塞

3. 缓存机制: 使用make()创建.

4. 超时机制: 使用time.After()函数.

func main() {
var abc chan int
select {
case <-abc:
fmt.Println("从abc获取值")
case <-time.After(10 * time.Second):
fmt.Println("超时10秒")
}
fmt.Println("程序结束")
}