package main

import "time"

func f1() {

ch := make(chan int) // no buffer
go func() {

ch <- 0
println("out of routine")
}()
println("f1 start")
time.Sleep(time.Second * 3)
<-ch
println("End")

}

func f2() {

ch := make(chan int, 1) // size =1
go func() {

ch <- 0
println("out of routine")
}()
println("f1 start")
time.Sleep(time.Second * 3)
<-ch
println("End")

}
func main() {
//f1()
f2()
}