建立 channel 使并发程序能够在运行过程中实现 同步。
创建
var 参数 chan 读写数据的类型 // 声明参数
make(chan 读写数据的类型)
使用
msg <- chan // 从chan 中把数据读出来,若没有,则阻塞等待
chan <- msg // 将数据写入 chan, 若缓冲区已满,则阻塞等待
package main
import (
"fmt"
"time"
)
func main() {
var c = make(chan string)
go read_msg(c)
time.Sleep(time.Second * 3)
go write_msg(c)
time.Sleep(time.Second * 1)
}
func read_msg(c chan string) {
fmt.Println("读【开始】")
var msg = <-c
fmt.Println("读【结束】", msg)
}
func write_msg(c chan string) {
fmt.Println("写【开始】")
c <- "hello"
fmt.Println("写【结束】")
}