zoukankan      html  css  js  c++  java
  • 【GO】golang 协程初探 ,基于生产者/消费者

    
    package main
    
    import (
    	"fmt"
    	"time"
    )
    
    func main() {
    	// 管道 固定5个int
    	ch := make(chan int, 5)
    	// 生成者 协程
    	// 管道只能存5个int, 但是要生产15个int, 这就要等消费者先消费完(未消费前生产会阻塞), 然后生产
    	go func(ch chan int) {
    		for i := 0; i < 15; i++ {
    			ch <- i
    			fmt.Println("put data: ", i)
    		}
    	}(ch)
    
    	// 主线程充当消费者, 一直会等待把生产数据全部读完
    	for {
    		data := <-ch
    		fmt.Println("read data: ", data)
    		time.Sleep(time.Second)
    	}
    
    }
    
    
    
    “年轻时,我没受过多少系统教育,但什么书都读。读得最多的是诗,包括烂诗,我坚信烂诗早晚会让我邂逅好诗。” by. 马尔克斯
  • 相关阅读:
    异常流
    动手动脑7
    《大道至简七八章》
    接口与继承-动手动脑
    《大道至简第六章》读后感
    随机数存放到数组并求和
    《大道至简第五章》

    echo
    mount命令
  • 原文地址:https://www.cnblogs.com/jzsg/p/11023651.html
Copyright © 2011-2022 走看看