go channel demo1

开启一个writeData 的协程,向管道intChan 中放入50个整数

开启一个readData的协程,从intChan中读取writeData写入的数据

注意:readData和writeData使用的是同一管道

主线程需要等到intChan和writeChan执行完毕才能继续执行退出(管道)




package main

import (

"fmt"

"time"

)

func writeDate(intChan chan  int){ //开启一个writeData协程 读取50个整数,放到intChan中

for j:=0;j<50;j++{

intChan <- i

fmt.Println("%v 写入管道中\n",i)

}

time.Sleep(Second)

close(intChan) //关闭写入管道

}

func readData(intChan chan  int,exitChan chan bool){ //开启一个readData协程 ,读取intChan中的数据

for {

v,ok := <- intChan

if !ok{

break

}

fmt.Printf("读取管道数据中%v \n",v)

}

exitChan <- true

close(exitChan) //关闭判断管道

}

func main() {

intChan := make(chan int,50)

exitChan := make(chan bool,1)

go writeDate(intChan)

go readDate(intChan,exitChan)

for{

v,ok := <- exitChan

if !ok{

break

}

}

}

你可能感兴趣的:(go channel demo1)