如题,另外以下三段有什么区别吗,哪个性能上更好?怎么分析一下
第一段
ch := make(chan string, 10)
go func() {
for i := 0; i < 10; i++ {
fmt.Println("input ", i)
ch <- strconv.Itoa(i)
}
}()
go func() {
LOOP:
for {
select {
case m1 := <-ch:
println("m1", m1)
default:
break LOOP
}
}
}()
第二段
go func() {
for i := 0; i < 10; i++ {
fmt.Println("input ", i)
ch <- strconv.Itoa(i)
}
}()
go func() {
LOOP:
for {
select {
case m1 := <-ch:
println("m1", m1)
default:
goto LOOP
}
}
}()
第三段
ch := make(chan string, 10)
go func() {
for i := 0; i < 10; i++ {
fmt.Println("input ", i)
ch <- strconv.Itoa(i)
}
}()
go func() {
for {
select {
case m1 := <-ch:
println("m1", m1)
default:
}
}
}()