Go语言并发与并行学习笔记(一)

kjfcpua · 2014-10-12 09:00:00
更多评论
polaris
社区,需要你我一同完善!

这篇文章不错,期待后续

#1

"毫无疑问,输出会是这样的:

0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9" ============================>错, 请运行一下程序:

package main
import "fmt"

var quit chan int

func Print(ch string) {
  for i := 0; i < 10000; i++ {
    fmt.Print(ch)
  }
  quit <- 0
}

func main() {
  quit = make(chan int, 2)
  go Print("0")
  go Print("1")
  for i := 0; i < 2; i++ {
    <- quit
  }
  fmt.Println("END")
}

=========== 可以看到01交叉,说明什么? 楼主再回去翻翻书~

#2