go练习-go goruotine

package main

import "fmt"

//可以通过<-限制单向通道
//生成0~100的数字发送到ch1
func f1(ch chan<- int) {
	for i := 0; i < 100; i++ {
		ch <- i
	}
	close(ch)
}

//从ch中取出数据技术它的平方
func f2(ch1 <-chan int, ch2 chan<- int) {
	for {
		tmp, ok := <-ch1
		if !ok {
			break
		}
		ch2 <- tmp * tmp
	}
	close(ch2)
}
func main() {
	ch1 := make(chan int, 100)
	ch2 := make(chan int, 100)
	go f1(ch1)
	go f2(ch1, ch2)
	//从通道中取值的方式2
	for ret :=range ch2{
		fmt.Println(ret)
	}
}

循环
请先登录后发表评论
  • latest comments
  • 总共0条评论