为了账号安全,请及时绑定邮箱和手机立即绑定

去通道容量,为什么比我指定的多一个元素

去通道容量,为什么比我指定的多一个元素

Go
泛舟湖上清波郎朗 2021-08-10 21:06:02
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
提交
取消
意见反馈 帮助中心 APP下载
官方微信