示例代码:
package main
import (
"fmt"
"math"
"time"
)
func newsFunc(a chan string) {
t := time.NewTicker(time.Millisecond * 300)
i := 0
for j := 0; j < 20; j++ {
i++
fmt.Println("ydook.com No. ", i)
<-t.C
}
}
func movFunc(c chan bool) {
t := time.NewTicker(time.Millisecond * 100)
i := 0
for j := 0; j < 30; j++ {
i++
j := time.Duration(i * int(math.Pow(10, 9)))
time.Sleep(j)
fmt.Println("_______________________________________________________________")
fmt.Println("Duration = ", j)
fmt.Println("www.ydook.com No. ", i)
<-t.C
}
c <- true
}
func main() {
c1 := make(chan string)
c2 := make(chan bool)
newsFunc(c1)
movFunc(c2)
// 处理通道返回
for {
select {
case <-c2:
// return 退出通道处理
return
case <-c1:
meg := <-c1
fmt.Println(meg)
}
}
}
运行代码:
ydook.com No. 1
ydook.com No. 2
ydook.com No. 3
ydook.com No. 4
ydook.com No. 5
ydook.com No. 6
ydook.com No. 7
ydook.com No. 8
ydook.com No. 9
ydook.com No. 10
ydook.com No. 11
ydook.com No. 12
ydook.com No. 13
ydook.com No. 14
ydook.com No. 15
ydook.com No. 16
ydook.com No. 17
ydook.com No. 18
ydook.com No. 19
ydook.com No. 20
_______________________________________________________________
Duration = 1s
www.ydook.com No. 1
_______________________________________________________________
Duration = 2s
www.ydook.com No. 2
_______________________________________________________________
Duration = 3s
www.ydook.com No. 3
_______________________________________________________________
Duration = 4s
www.ydook.com No. 4
_______________________________________________________________
Duration = 5s
www.ydook.com No. 5
_______________________________________________________________
Duration = 6s
www.ydook.com No. 6
_______________________________________________________________
Duration = 7s
www.ydook.com No. 7
_______________________________________________________________
Duration = 8s
www.ydook.com No. 8
_______________________________________________________________
Duration = 9s
www.ydook.com No. 9
_______________________________________________________________
Duration = 10s
www.ydook.com No. 10
_______________________________________________________________
Duration = 11s
www.ydook.com No. 11
_______________________________________________________________
Duration = 12s
www.ydook.com No. 12
_______________________________________________________________
Duration = 13s
www.ydook.com No. 13
_______________________________________________________________
Duration = 14s
www.ydook.com No. 14
_______________________________________________________________
Duration = 15s
www.ydook.com No. 15
_______________________________________________________________
Duration = 16s
www.ydook.com No. 16
_______________________________________________________________
Duration = 17s
www.ydook.com No. 17
_______________________________________________________________
Duration = 18s
www.ydook.com No. 18
_______________________________________________________________
Duration = 19s
www.ydook.com No. 19
_______________________________________________________________
Duration = 20s
www.ydook.com No. 20
_______________________________________________________________
Duration = 21s
www.ydook.com No. 21