go 语言 channel for select

示例demo55
package main

import (
  "fmt"
  "time"
)

func main() {
  intChan := make(chan int, 10) //初始化 intchan 通道 长度10
  intChan2 := make(chan int, 10) //初始化 intchan 通道 长度10

  go func() {
    for i := 0; i < 10; i++ {
      intChan <- i
      intChan2 <- i
    }
  }()
  //无限循环 不阻塞 没有数据就会到default
  for {
    select {
    case v := <-intChan:
      fmt.Println(v)
    case v := <-intChan2:
      fmt.Println(v)
    default:
      fmt.Println("get data timeout")
      time.Sleep(time.Second)
    }
  }

}
posted @ 2022-08-21 23:29  5656923  阅读(74)  评论(0)    收藏  举报