初级会员
  • 第 18285 位会员
  • ljh_goer
  • 2018-05-01 21:20:55
  • Offline
  • 20 2

最近发布的主题

    暂无

最近发布的文章

    暂无

最近分享的资源

    暂无

最近发布的项目

    暂无

最近的评论

  • 我测试了下是 是先进先出,这个案例之所以打印结果是c1:2 c2:1,是因为f2函数被先执行,f1函数在后面执行,代码直观上会给我们一个错觉是f1函数先执行,f2函数后执行,因为f1函数在前面 贴上代码,运行时就会发现是先进先出 package main import ( "fmt" "time" ) func main() { c := make(chan int, 2) go f1(c) time.Sleep(10 * 1000000) go f2(c) time.Sleep(10 * 1000000) c1 := <- c fmt.Println("c1: ", c1) c2 := <- c fmt.Println("c2: ", c2) } func f1(c chan int) { fmt.Println("f1 b") c <- 1 fmt.Println("f1 e") } func f2(c chan int) { fmt.Println("f2 b") c <- 2 fmt.Println("f2 e") }