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] 程序结束")
}
