https://segmentfault.com/a/1190000008230146

package main
import (
"time"
"log"
)
var a string
func hello() {
time.Sleep(time.Millisecond * 900) // 这里如果sleep 1 秒的话, 执行程序时可能看不到打印的 “hello”
log.Println(a)
}
func main() {
a = "hello
"
go hello()
time.Sleep(time.Second)
}
package main
import (
// "log"
"time"
)
var a string
var c = make(chan int)
func main() {
go func() {
a = "hello
"
print("recv begin..
")
time.Sleep(time.Second*3)
<-c
sum :=0 //后面这四行注释,打印顺序变为:sb, rb, re,se. 不注释时打印顺序可能为:sb,rb,re,se. (sb: send begin, se: send end..)
for i := 0; i<1<<24; i++ {
sum += i
}
print("recv end..
")
}()
print("send begin..
")
c <-12
print("send end..
")
print(a)
time.Sleep(time.Second*2)
}

注释4行:
