由于工作需要 写了一段测试chan的代码 发现同样的代码在windows上的运行结果和linux的结果是不一样的
// testto project main.go package main import ( "fmt" "time" ) var ch chan int func main() { ch = make(chan int, 1) var i int i = 1 go f1() for j := 0; j < 10; j++ { time.Sleep(time.Second * 1) fmt.Println("main") ch <- i i = <-ch } } func f1() { var i int i = 1 for { i = <-ch fmt.Println(i) time.Sleep(time.Second * 4) ch <- i } }
Windows 下编译运行结果如下
linux下编译运行结果如下