1.无缓冲Channel
package main
import (
"fmt"
"time"
)
// 子goroutine,主goroutine结束,子也结束
func NewTask() {
i := 0
for {
i++
fmt.Println("new Goroutine: i =", i)
time.Sleep(1 * time.Second)
}
}
func main() {
//定义一个无缓冲的channel
c := make(chan int)
go func() {
defer fmt.Println("go goroutine 结束")
fmt.Println("go goroutine 正在进行....")
c <- 66 // 将66写的chan中
}()
// 从channel中读取数据,复制给num
num := <-c
fmt.Println("num is ", num)
}
// 结果: