好久没学习golang了,今天学习了一下协程。
go关键字
使用go关键字,再加一个函数名,就可以开启一个新的协程.
package main
import (
"fmt"
"time"
)
func main() {
go func() {
fmt.Println("goroutine")
}()
fmt.Println("main")
time.Sleep(time.Second)
}
通道
通道是协程之间的通讯机制。通过<-运算符向通道写入或读取数据。
创建通道是make函数。从通道读数据时,如果通道没有数据,就会阻塞。
以下是一个简单的例子:
package main
import (
"fmt"
"time"
)
func worker(i int, ch chan int) {
for {
fmt.Println("worker", i, "通道数据", <-ch)
}
}
func main() {