首页 > 其他 > 详细

channle阻塞

时间:2018-12-07 00:22:04      阅读:192      评论:0      收藏:0      [点我收藏+]

 

 

package main

import (
	"fmt"
	"time"
)

func readChan(inchan chan int, exitchan chan bool) {
	for {
		time.Sleep(time.Millisecond * 500)
		res, ok := <-inchan
		if !ok {
			break
		}
		fmt.Printf("读取%d\n", res)
	}
	exitchan <- true
	close(exitchan)
}

func writeChan(inchan chan int) {
	for i := 1; i <= 50; i++ {
		inchan <- i
		fmt.Printf("写入%d\n", i)
	}
	close(inchan)
}
func main() {
	inchan := make(chan int, 10)
	exitchan := make(chan bool, 1)

	go writeChan(inchan)
	go readChan(inchan, exitchan)

	for {
		_, ok := <-exitchan
		if !ok {
			break
		}
	}
}

  

channle阻塞

原文:https://www.cnblogs.com/LC161616/p/10080596.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!