25 lines
502 B
Go
25 lines
502 B
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"time"
|
|
)
|
|
|
|
func main() {
|
|
ch := make(chan string) // 无缓冲 channel
|
|
|
|
go func() {
|
|
fmt.Println("[Sender] 准备发送数据...")
|
|
ch <- "hello from goroutine" // 这里会阻塞,直到有人接收
|
|
fmt.Println("[Sender] 数据发送完毕")
|
|
}()
|
|
|
|
time.Sleep(1 * time.Second)
|
|
fmt.Println("[Main] 1 秒后开始接收数据...")
|
|
|
|
msg := <-ch // 接收数据,同时解除发送方阻塞
|
|
fmt.Println("[Main] 收到:", msg)
|
|
|
|
fmt.Println("[Main] 程序结束")
|
|
}
|