package mainimport "fmt"import "time"func main() { message := make(chan string ,1) // no buffer count := 3 go func() { for i := 1; i <= count; i++ { fmt.Println("send message") message <- fmt.Sprintf("message %d", i) } }() time.Sleep(time.Second * 3) for i := 1; i <= count; i++ { fmt.Println(<-message) }}输出是send messagesend message [wait for 3 sec]message 1send messagemessage 2message 3如果我message := make(chan string ,1) // no buffer改为message := make(chan string ,2) // no buffer我有send messagesend messagesend message [wait 3 sec]message 1message 2message 3为什么 2 个缓冲区通道可以存储 3 个字符串对象?不是2?
1 回答
- 1 回答
- 0 关注
- 188 浏览
添加回答
举报
0/150
提交
取消